From 1425afe14b5af8833afc5bc9ee50c2da2a63025e Mon Sep 17 00:00:00 2001 From: Rasmus Wejlgaard Date: Mon, 6 Apr 2026 18:15:12 +0100 Subject: [PATCH] only send email if something went wrong with backups --- ansible/scripts/hdd-backup.sh | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/ansible/scripts/hdd-backup.sh b/ansible/scripts/hdd-backup.sh index 48aec04..7385b18 100755 --- a/ansible/scripts/hdd-backup.sh +++ b/ansible/scripts/hdd-backup.sh @@ -9,13 +9,19 @@ SUBJECT="HDD Backup Report - $(date '+%Y-%m-%d %H:%M')" failures=() report="" +size_error="" for dir in "${DIRS[@]}"; do src="/hdd/$dir" dst="$BUCKET/$dir" echo "Syncing $src -> $dst" - output=$(rclone sync "$src" "$dst" -v 2>&1); rc=$? + if output=$(rclone sync "$src" "$dst" -v 2>&1); then + rc=0 + else + rc=$? + fi + output=$(grep -v "Can't follow symlink without -L/--copy-links" <<< "$output") [[ $rc -ne 0 ]] && failures+=("$dir") @@ -23,7 +29,13 @@ for dir in "${DIRS[@]}"; do done # Get bucket storage usage -bucket_usage=$(rclone size "$BUCKET" 2>&1) || bucket_usage="(failed to retrieve bucket size)" +if bucket_usage=$(rclone size "$BUCKET" 2>&1); then + : +else + size_error="failed to retrieve bucket size" + report+="=== Bucket Usage Error ===\n$bucket_usage\n\n" + bucket_usage="($size_error)" +fi if [[ ${#failures[@]} -gt 0 ]]; then failure_summary="FAILURES: ${failures[*]}" @@ -31,9 +43,11 @@ else failure_summary="All syncs completed successfully." fi -{ - echo -e "Backup completed: $(date '+%Y-%m-%d %H:%M:%S')" - echo -e "$failure_summary\n" - echo -e "=== Bucket Usage ===\n$bucket_usage\n" - #echo -e "=== Sync Output ===\n$report" -} | mutt -s "$SUBJECT" "$EMAIL" +if [[ ${#failures[@]} -gt 0 || -n "$size_error" ]]; then + { + echo -e "Backup completed: $(date '+%Y-%m-%d %H:%M:%S')" + echo -e "$failure_summary\n" + echo -e "=== Bucket Usage ===\n$bucket_usage\n" + echo -e "=== Sync Output ===\n$report" + } | mutt -s "$SUBJECT" "$EMAIL" +fi