From b40cb39327e3fff444a90320678921fbc394d881 Mon Sep 17 00:00:00 2001 From: Nick Stokoe Date: Tue, 2 Jan 2024 14:13:10 +0000 Subject: [PATCH] templates/bin/backup - better protect against failures I experienced a problem which stopped this backup from running, so let's allow it to fail more gracefully and not leave the backup in a state it can't resume from, if possible. --- templates/bin/backup | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/templates/bin/backup b/templates/bin/backup index 6daff52..dbfd82b 100755 --- a/templates/bin/backup +++ b/templates/bin/backup @@ -5,12 +5,25 @@ set -o pipefail set -o errexit -cd "{{docker_compose_base_dir}}" +cd "/opt/docker-compose" - -{{docker_compose_cmd}} exec -T -u www-data nextcloud ./occ maintenance:mode --on -{{docker_compose_cmd}} down -{{docker_compose_cmd}} run --name borgmatic -T --rm borgmatic /backup.sh run -{{docker_compose_cmd}} up -d main-services -{{docker_compose_cmd}} exec -T -u www-data nextcloud ./occ maintenance:mode --off -{{docker_compose_cmd}} run --name borgmatic -T --rm borgmatic /backup.sh check +set -vx +docker-compose exec -T -u www-data nextcloud ./occ maintenance:mode --on || + echo "WARNING: Couldn't stop nextcloud container, proceeding anyway" +docker-compose down --remove-orphans || { + echo "ERROR: Couldn't stop docker-compose, restarting and aborting" + docker network prune --force + docker-compose up -d + exit +} +docker network prune --force # remove dangling networks +docker-compose run --name borgmatic -T --rm borgmatic /backup.sh run || + echo "ERROR: Couldn't run borgmatic" +docker-compose up -d main-services || { + echo "ERROR: couldn't restart docker-compose services, aborting with no services!" + exit 1 +} +docker-compose exec -T -u www-data nextcloud ./occ maintenance:mode --off || + echo "Couldn't turn off nextcloud's maintainance mode" +docker-compose run --name borgmatic -T --rm borgmatic /backup.sh check || + echo "Couldn't run the bormatic backup check"