From a278fdd40ab4bdcf708711be62b8794f80ce9adb Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Mon, 18 Apr 2022 10:22:53 +0100 Subject: [PATCH 1/3] Small adjustments to restic-backup Reflect status of script from the VPS, mainly add a sleep interval after backup. --- VPS/restic-backup.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/VPS/restic-backup.sh b/VPS/restic-backup.sh index 3128457..19b8b1f 100755 --- a/VPS/restic-backup.sh +++ b/VPS/restic-backup.sh @@ -2,7 +2,7 @@ # Use setcap'd binary in home directory #PATH="/home/restic/bin/:$PATH" -# Now uses binary in /usr/bin, which is also setcap'd +#Not necessary anymore : binary in /usr/bin setcap'd backup_origin="/backups/restic" backup_container="central-backup" @@ -64,6 +64,9 @@ if [ $? -ne 0 ]; then error_message="$error_message""$(cat backup_output.log)" fi +# Sleep to allow time for propagation +sleep 60 + if [ -z "$error_message" ]; then restic check --verbose > check_output.log 2>&1 fi From 9efacf4f8c2313435306eeb5d4d5cdd7b7c43e6b Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Mon, 18 Apr 2022 10:27:49 +0100 Subject: [PATCH 2/3] Add example variables for mail sender/recicipients for backup --- VPS/restic-backup.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/VPS/restic-backup.sh b/VPS/restic-backup.sh index 19b8b1f..dfeb0ac 100755 --- a/VPS/restic-backup.sh +++ b/VPS/restic-backup.sh @@ -7,6 +7,9 @@ backup_origin="/backups/restic" backup_container="central-backup" +mail_sender='"Name"""' +mail_recipients="first@example.com,second@example.com" + if [[ -z "$1" || "$1" != "daily" && "$1" != "weekly" && "$1" != "monthly" ]]; then echo "Usage : backup [daily|weekly|monthly]" exit 1 From 3c15c5a9f50a5ed40547f8f85137d92d49c1107f Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Mon, 18 Apr 2022 10:44:21 +0100 Subject: [PATCH 3/3] Run prune before checking the backup repository --- VPS/restic-backup.sh | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/VPS/restic-backup.sh b/VPS/restic-backup.sh index dfeb0ac..b92cbe2 100755 --- a/VPS/restic-backup.sh +++ b/VPS/restic-backup.sh @@ -70,26 +70,28 @@ fi # Sleep to allow time for propagation sleep 60 +# Remove old and stale data if [ -z "$error_message" ]; then - restic check --verbose > check_output.log 2>&1 + restic forget --verbose --prune --group-by tag --tag "$1" --keep-last "$backup_count" > forget_output.log 2>&1 fi if [ $? -ne 0 ]; then - error_message="Restic check failed ! See log below.\n" - error_message="$error_message""Backup purge will not be run.\n\n" - error_message="$error_message""$(cat check_output.log)" + error_message="Restic forget failed ! See log bellow.\n\n" + error_message="$error_message""$(cat forget_output.log)" +fi + +# Check repository status +if [ -z "$error_message" ]; then + restic check --verbose > check_output.log 2>&1 +fi +if [ $? -ne 0 ]; then + error_message="Restic check failed ! See log below.\n" + error_message="$error_message""Backup purge will not be run.\n\n" + error_message="$error_message""$(cat check_output.log)" fi # Clean up and remove old backups rm -rf temp/* -if [ -z "$error_message" ]; then - restic forget --verbose --prune --group-by tag --tag "$1" --keep-last "$backup_count" > forget_output.log 2>&1 -fi -if [ $? -ne 0 ]; then - error_message="Restic forget failed ! See log bellow.\n\n" - error_message="$error_message""$(cat forget_output.log)" -fi - if [ -n "$error_message" ]; then echo -e "$error_message" | mail -aFrom:"$mail_sender" -s "[$(uname -n)] ⚠️ Backup error $(date +%D-%Hh%M)" "$mail_recipients"