diff options
author | Sam Chudnick <sam@chudnick.com> | 2021-12-07 20:13:22 -0500 |
---|---|---|
committer | Sam Chudnick <sam@chudnick.com> | 2021-12-07 20:13:22 -0500 |
commit | be06067cd71678e65dafc03ad2ee4710d19458f9 (patch) | |
tree | a39ad9a5238bca05eeef9ecf74f4a11f88c010bf /.local/bin/backups/assimilate | |
parent | 4888778f4fa492aef107880bfd53cb1fe774090b (diff) |
Fixed issue caused by static path to archive location by replacing onsite with location variable. Added monitoring of return codes from archives for warnings and errors. Added notifications on start and finish. Notify user with different messages based on return codes.
Diffstat (limited to '.local/bin/backups/assimilate')
-rwxr-xr-x | .local/bin/backups/assimilate | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/.local/bin/backups/assimilate b/.local/bin/backups/assimilate index ba31baa..dea18d3 100755 --- a/.local/bin/backups/assimilate +++ b/.local/bin/backups/assimilate | |||
@@ -19,6 +19,19 @@ LOG="$HOME/.config/borg/log" | |||
19 | # by the same means. This allows custom password store locations to work with this script. | 19 | # by the same means. This allows custom password store locations to work with this script. |
20 | export BORG_PASSCOMMAND="sudo $SUDO_OPTS -u $USER pass Borg-Backup/$(hostname)-$LOCATION" | 20 | export BORG_PASSCOMMAND="sudo $SUDO_OPTS -u $USER pass Borg-Backup/$(hostname)-$LOCATION" |
21 | 21 | ||
22 | # Create variables and function to monitor exit status | ||
23 | WARNING=0 | ||
24 | ERROR=0 | ||
25 | check_rc() { | ||
26 | rc=$1 | ||
27 | [ $1 -eq 1 ] && WARNING=1 | ||
28 | [ $1 -eq 2 ] && ERROR=1 | ||
29 | } | ||
30 | |||
31 | # Start backup | ||
32 | echo -e "\n$LOCATION $(date)\n" >> $LOG | ||
33 | notify-send "beginning $LOCATION backup" | ||
34 | |||
22 | # Backup root partition | 35 | # Backup root partition |
23 | sudo $SUDO_OPTS borg create $CREATE_OPTS \ | 36 | sudo $SUDO_OPTS borg create $CREATE_OPTS \ |
24 | --exclude '/dev/*' \ | 37 | --exclude '/dev/*' \ |
@@ -27,16 +40,31 @@ sudo $SUDO_OPTS borg create $CREATE_OPTS \ | |||
27 | --exclude '/tmp/*' \ | 40 | --exclude '/tmp/*' \ |
28 | --exclude '/mnt/*' \ | 41 | --exclude '/mnt/*' \ |
29 | --exclude '/media/*' \ | 42 | --exclude '/media/*' \ |
30 | "/mnt/onsite-backup/$(hostname)::root-{now:%Y-%m-%d}" / 2>>$LOG | 43 | "/mnt/$LOCATION-backup/$(hostname)::root-{now:%Y-%m-%d}" / 2>>$LOG |
44 | check_rc $? | ||
31 | 45 | ||
32 | # Backup boot parition | 46 | # Backup boot parition |
33 | sudo $SUDO_OPTS borg create $CREATE_OPTS \ | 47 | sudo $SUDO_OPTS borg create $CREATE_OPTS \ |
34 | "/mnt/onsite-backup/$(hostname)::boot-{now:%Y-%m-%d}" /boot 2>>$LOG | 48 | "/mnt/$LOCATION-backup/$(hostname)::boot-{now:%Y-%m-%d}" /boot 2>>$LOG |
49 | check_rc $? | ||
35 | 50 | ||
36 | # Backup home partition | 51 | # Backup home partition |
37 | sudo $SUDO_OPTS borg create $CREATE_OPTS \ | 52 | sudo $SUDO_OPTS borg create $CREATE_OPTS \ |
38 | "/mnt/onsite-backup/$(hostname)::home-{now:%Y-%m-%d}" /home 2>>$LOG | 53 | "/mnt/$LOCATION-backup/$(hostname)::home-{now:%Y-%m-%d}" /home 2>>$LOG |
54 | check_rc $? | ||
39 | 55 | ||
40 | # Backup var partition | 56 | # Backup var partition |
41 | sudo $SUDO_OPTS borg create $CREATE_OPTS \ | 57 | sudo $SUDO_OPTS borg create $CREATE_OPTS \ |
42 | "/mnt/onsite-backup/$(hostname)::var-{now:%Y-%m-%d}" /var 2>>$LOG | 58 | "/mnt/$LOCATION-backup/$(hostname)::var-{now:%Y-%m-%d}" /var 2>>$LOG |
59 | check_rc $? | ||
60 | |||
61 | # Send notifications based on return codes of archives | ||
62 | |||
63 | [ $WARNING -eq 1 ] && notify-send "One or more archives produced a warning" \ | ||
64 | "Please check the log at $LOG" | ||
65 | |||
66 | [ $ERROR -eq 1 ] && notify-send -u critical \ | ||
67 | "One or more archives produced an error and was unable to complete" \ | ||
68 | "Please check the log at $LOG" | ||
69 | |||
70 | [ $WARNING -eq 0 -a $ERROR -eq 0 ] && notify-send "$LOCATION backup complete" | ||