Jelajahi Sumber

update rclone backup script to use ntfy instead of emails

Blaine Story 2 tahun lalu
induk
melakukan
d641b6275c

+ 0 - 11
roles/cloud-backups/templates/backup-to-b2.sh-WeberServer.j2

@@ -1,11 +0,0 @@
-#!/bin/bash
-# {{ ansible_managed }}
-
-LOG_FILE="/var/log/rclone.log"
-
-# Container Data
-echo "Starting backup of container data..." | ts "%Y/%m/%d %H:%M:%S" >> "$LOG_FILE"
-
-/usr/bin/rclone copy /opt/ b2-container-data:current/Weber --backup-dir=b2-container-data:old/Weber --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --exclude "*log" --log-file=$LOG_FILE -v
-
-echo "Finished backing up container data" | ts "%Y/%m/%d %H:%M:%S" >> "$LOG_FILE"

+ 0 - 68
roles/cloud-backups/templates/backup-to-b2.sh-tvheadend.j2

@@ -1,68 +0,0 @@
-#!/bin/bash
-# {{ ansible_managed }}
-
-EMAIL_ADDRESS="blaine@nas.home.lan"
-LOG_FILE="/var/log/rclone.log"
-
-LOG_DIR="/var/log/rclone/$(date +%Y-%m-%d)"
-
-mkdir -p "$LOG_DIR"
-
-# Photos 
-PHOTOS_LOG="/tmp/b2-photos.log"
-> $PHOTOS_LOG
-echo "Starting backup of photos..." | ts >> "$LOG_FILE"
-#/usr/bin/rclone copy /mnt/nas/private/Photos b2-photos:current --backup-dir=b2-photos:old --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --exclude "*DS_Store" --log-file=$PHOTOS_LOG | ts | tee -a "$LOG_FILE"
-/usr/bin/rclone copy /mnt/nas/private/Photos b2-photos:current --fast-list --immutable --exclude "*DS_Store" --log-file=$PHOTOS_LOG -v | ts | tee -a "$LOG_FILE"
-
-if [[ $? > 0 ]]; then
-  mail -s "[$(hostname)] rclone - Photos Backup Error" "$EMAIL_ADDRESS" < $PHOTOS_LOG
-fi
-
-mv "$PHOTOS_LOG" "$LOG_DIR"
-
-echo "Finished backing up photos" | ts >> "$LOG_FILE"
-
-
-# Data
-DATA_LOG="/tmp/b2-data.log"
-> $DATA_LOG
-echo "Starting backup of data..." | ts >> "$LOG_FILE"
-/usr/bin/rclone copy /mnt/nas/private/Data b2-data:current --backup-dir=b2-data:old --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --exclude "*DS_Store" --log-file=$DATA_LOG -v | ts | tee -a "$LOG_FILE"
-
-if [[ $? > 0 ]]; then
-  mail -s "[$(hostname)] rclone - Data Backup Error" "$EMAIL_ADDRESS" < $PHOTOS_LOG
-fi
-
-mv "$DATA_LOG" "$LOG_DIR"
-
-echo "Finished backing up data" | ts >> "$LOG_FILE"
-
-
-# Music
-MUSIC_LOG="/tmp/b2-music.log"
-> $MUSIC_LOG
-echo "Starting backup of music..." | ts >> "$LOG_FILE"
-/usr/bin/rclone copy /mnt/nas/public b2-music:current --backup-dir=b2-music:old --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --include=Music/** --include="Music Videos"/** --log-file=$MUSIC_LOG -v | ts | tee -a "$LOG_FILE"
-
-if [[ $? > 0 ]]; then
-  mail -s "[$(hostname)] rclone - Music Backup Error" "$EMAIL_ADDRESS" < $MUSIC_LOG
-fi
-
-mv "$MUSIC_LOG" "$LOG_DIR"
-
-echo "Finished backing up music" | ts >> "$LOG_FILE"
-
-# Recipes
-RECIPES_LOG="/tmp/b2-recipes.log"
-> $RECIPES_LOG
-echo "Starting backup of recipes..." | ts >> "$LOG_FILE"
-/usr/bin/rclone copy /mnt/nas/public b2-data:current --backup-dir=b2-data:old --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --include=Recipes/**  --log-file=$RECIPES_LOG -v | ts | tee -a "$LOG_FILE"
-
-if [[ $? > 0 ]]; then
-  mail -s "[$(hostname)] rclone - Recipes Backup Error" "$EMAIL_ADDRESS" < $RECIPES_LOG
-fi
-
-mv "$RECIPES_LOG" "$LOG_DIR"
-
-echo "Finished backing up recipes" | ts >> "$LOG_FILE"

+ 32 - 4
roles/cloud-backups/templates/backup-to-b2.sh.j2

@@ -17,6 +17,14 @@ echo "Starting backup of '{{ container.name }}:{{ volume | regex_replace(':.*')
       --suffix-keep-extension \
       --exclude "*log" \
       --log-file="$LOG_FILE" -v
+if [[ $? > 0 ]]; then
+  curl \
+    -H "Title: rclone backup error" \
+    -H "Priority: urgent" \
+    -H "Tags: warning" \
+    -d "Backup of {{ container.name }}:{{ volume | regex_replace(':.*') }} on $(hostname) had an error. Please check logs at $LOG_FILE" \
+    https://ntfy.warchildstory.com/{{ ntfy_server_notifications }}
+fi
 echo "Finished backup of '{{ container.name }}:{{ volume | regex_replace(':.*') }}'." | ts >> "$LOG_FILE"
 
 {% endif %}
@@ -36,7 +44,12 @@ echo "Starting backup of photos..." | ts >> "$LOG_FILE"
 /usr/bin/rclone copy /mnt/nas/private/Photos b2-photos:current --fast-list --immutable --exclude "*DS_Store" --log-file=$PHOTOS_LOG -v | ts | tee -a "$LOG_FILE"
 
 if [[ $? > 0 ]]; then
-  mail -s "[$(hostname)] rclone - Photos Backup Error" "$EMAIL_ADDRESS" < $PHOTOS_LOG
+  curl \
+    -H "Title: rclone backup error" \
+    -H "Priority: urgent" \
+    -H "Tags: warning" \
+    -d "Backup of Photos on $(hostname) had an error. Please check logs at $LOG_DIR/$(basename -- $PHOTOS_LOG)" \
+    https://ntfy.warchildstory.com/{{ ntfy_server_notifications }}
 fi
 
 mv "$PHOTOS_LOG" "$LOG_DIR"
@@ -51,7 +64,12 @@ echo "Starting backup of data..." | ts >> "$LOG_FILE"
 /usr/bin/rclone copy /mnt/nas/private/Data b2-data:current --backup-dir=b2-data:old --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --exclude "*DS_Store" --log-file=$DATA_LOG -v | ts | tee -a "$LOG_FILE"
 
 if [[ $? > 0 ]]; then
-  mail -s "[$(hostname)] rclone - Data Backup Error" "$EMAIL_ADDRESS" < $PHOTOS_LOG
+  curl \
+    -H "Title: rclone backup error" \
+    -H "Priority: urgent" \
+    -H "Tags: warning" \
+    -d "Backup of Data on $(hostname) had an error. Please check logs at $LOG_DIR/$(basename -- $DATA_LOG)" \
+    https://ntfy.warchildstory.com/{{ ntfy_server_notifications }}
 fi
 
 mv "$DATA_LOG" "$LOG_DIR"
@@ -66,7 +84,12 @@ echo "Starting backup of music..." | ts >> "$LOG_FILE"
 /usr/bin/rclone copy /mnt/nas/public b2-music:current --backup-dir=b2-music:old --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --include=Music/** --include="Music Videos"/** --log-file=$MUSIC_LOG -v | ts | tee -a "$LOG_FILE"
 
 if [[ $? > 0 ]]; then
-  mail -s "[$(hostname)] rclone - Music Backup Error" "$EMAIL_ADDRESS" < $MUSIC_LOG
+  curl \
+    -H "Title: rclone backup error" \
+    -H "Priority: urgent" \
+    -H "Tags: warning" \
+    -d "Backup of Music on $(hostname) had an error. Please check logs at $LOG_DIR/$(basename -- $MUSIC_LOG)" \
+    https://ntfy.warchildstory.com/{{ ntfy_server_notifications }}
 fi
 
 mv "$MUSIC_LOG" "$LOG_DIR"
@@ -80,7 +103,12 @@ echo "Starting backup of recipes..." | ts >> "$LOG_FILE"
 /usr/bin/rclone copy /mnt/nas/public b2-data:current --backup-dir=b2-data:old --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --include=Recipes/**  --log-file=$RECIPES_LOG -v | ts | tee -a "$LOG_FILE"
 
 if [[ $? > 0 ]]; then
-  mail -s "[$(hostname)] rclone - Recipes Backup Error" "$EMAIL_ADDRESS" < $RECIPES_LOG
+  curl \
+    -H "Title: rclone backup error" \
+    -H "Priority: urgent" \
+    -H "Tags: warning" \
+    -d "Backup of Recipes on $(hostname) had an error. Please check logs at $LOG_DIR/$(basename -- $RECIPES_LOG)" \
+    https://ntfy.warchildstory.com/{{ ntfy_server_notifications }}
 fi
 
 mv "$RECIPES_LOG" "$LOG_DIR"