Add error handling and improve backup scripts for consistency
This commit is contained in:
		
							parent
							
								
									5bfbda5e5e
								
							
						
					
					
						commit
						2ab7be67fa
					
				
					 4 changed files with 12 additions and 4 deletions
				
			
		| 
						 | 
					@ -5,6 +5,6 @@ RUN apk add --no-cache restic docker-cli docker-cli-compose curl zstd bash
 | 
				
			||||||
COPY backup.sh /backup.sh
 | 
					COPY backup.sh /backup.sh
 | 
				
			||||||
COPY backup_local.sh /backup_local.sh
 | 
					COPY backup_local.sh /backup_local.sh
 | 
				
			||||||
COPY backup_restic.sh /backup_restic.sh
 | 
					COPY backup_restic.sh /backup_restic.sh
 | 
				
			||||||
RUN chmod +x /backup.sh
 | 
					RUN chmod +x /backup.sh /backup_local.sh /backup_restic.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENTRYPOINT [ "/backup.sh" ]
 | 
					ENTRYPOINT [ "/backup.sh" ]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,7 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ "$1" = "local" ]; then
 | 
					if [ "$1" = "local" ]; then
 | 
				
			||||||
    source /backup_local.sh
 | 
					    source /backup_local.sh
 | 
				
			||||||
elif [ "$1" = "restic" ]; then
 | 
					elif [ "$1" = "restic" ]; then
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,7 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Environment variables
 | 
					# Environment variables
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONTAINER - name of the container where the database is running
 | 
					# CONTAINER - name of the container where the database is running
 | 
				
			||||||
| 
						 | 
					@ -31,8 +33,9 @@ fi
 | 
				
			||||||
echo "Starting backup for container: $CONTAINER"
 | 
					echo "Starting backup for container: $CONTAINER"
 | 
				
			||||||
if [ `docker exec -i $CONTAINER test -e /usr/bin/mariadb-dump && echo "yes" || echo "no"` = "yes" ]; then
 | 
					if [ `docker exec -i $CONTAINER test -e /usr/bin/mariadb-dump && echo "yes" || echo "no"` = "yes" ]; then
 | 
				
			||||||
    DBTYPE="mariadb"
 | 
					    DBTYPE="mariadb"
 | 
				
			||||||
    FILENAME=`date +"%Y%m%d_%H%M%S"`_$DBTYPE_$CONTAINER_$DB_NAME.sql.zst.tmp
 | 
					    FILENAME=`date +"%Y%m%d_%H%M%S"`_$DBTYPE_$CONTAINER_$DB_NAME.sql.zst
 | 
				
			||||||
    docker exec -i $CONTAINER mariadb-dump \
 | 
					    docker exec -i $CONTAINER mariadb-dump \
 | 
				
			||||||
 | 
					        --all-databases \
 | 
				
			||||||
        --user=root \
 | 
					        --user=root \
 | 
				
			||||||
        --password=$MARIADB_ROOT_PASSWORD \
 | 
					        --password=$MARIADB_ROOT_PASSWORD \
 | 
				
			||||||
        --add-drop-trigger \
 | 
					        --add-drop-trigger \
 | 
				
			||||||
| 
						 | 
					@ -43,8 +46,8 @@ if [ `docker exec -i $CONTAINER test -e /usr/bin/mariadb-dump && echo "yes" || e
 | 
				
			||||||
        --events \
 | 
					        --events \
 | 
				
			||||||
        --routines \
 | 
					        --routines \
 | 
				
			||||||
        --single-transaction \
 | 
					        --single-transaction \
 | 
				
			||||||
        --triggers | zstd -1 > $TARGET_DIR/
 | 
					        --triggers | zstd -1 > $TARGET_DIR/$FILENAME.tmp
 | 
				
			||||||
        mv $TARGET_DIR/$DBTYPE_$CONTAINER_$DB_NAME.sql.zst.tmp $TARGET_DIR/$DBTYPE_$CONTAINER_$DB_NAME.sql.zst
 | 
					        mv $TARGET_DIR/$FILENAME.tmp $TARGET_DIR/$FILENAME
 | 
				
			||||||
elif [ `docker exec -i $CONTAINER test -e /usr/bin/pg_dump && echo "yes" || echo "no"` = "yes" ]; then
 | 
					elif [ `docker exec -i $CONTAINER test -e /usr/bin/pg_dump && echo "yes" || echo "no"` = "yes" ]; then
 | 
				
			||||||
    DBTYPE="pgsql"
 | 
					    DBTYPE="pgsql"
 | 
				
			||||||
    FILENAME=`date +"%Y%m%d_%H%M%S"`_$DBTYPE_$CONTAINER_$DB_NAME.sql.zst
 | 
					    FILENAME=`date +"%Y%m%d_%H%M%S"`_$DBTYPE_$CONTAINER_$DB_NAME.sql.zst
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,7 @@
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Environment variables
 | 
					# Environment variables
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONTAINER - name of the container where the database is running
 | 
					# CONTAINER - name of the container where the database is running
 | 
				
			||||||
| 
						 | 
					@ -32,6 +34,7 @@ echo "Starting backup for container: $CONTAINER"
 | 
				
			||||||
if [ `docker exec -i $CONTAINER test -e /usr/bin/mariadb-dump && echo "yes" || echo "no"` = "yes" ]; then
 | 
					if [ `docker exec -i $CONTAINER test -e /usr/bin/mariadb-dump && echo "yes" || echo "no"` = "yes" ]; then
 | 
				
			||||||
    DBTYPE="mariadb"
 | 
					    DBTYPE="mariadb"
 | 
				
			||||||
    docker exec -i $CONTAINER mariadb-dump \
 | 
					    docker exec -i $CONTAINER mariadb-dump \
 | 
				
			||||||
 | 
					        --all-databases \
 | 
				
			||||||
        --user=root \
 | 
					        --user=root \
 | 
				
			||||||
        --password=$MARIADB_ROOT_PASSWORD \
 | 
					        --password=$MARIADB_ROOT_PASSWORD \
 | 
				
			||||||
        --add-drop-trigger \
 | 
					        --add-drop-trigger \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue