diff --git a/VPS/restic-backup.sh b/VPS/restic-backup.sh index 3128457..b92cbe2 100755 --- a/VPS/restic-backup.sh +++ b/VPS/restic-backup.sh @@ -2,11 +2,14 @@ # 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" +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 @@ -64,26 +67,31 @@ if [ $? -ne 0 ]; then error_message="$error_message""$(cat backup_output.log)" 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"