ntfy: integrate notifications into backup script

main
Jef Roosens 2024-01-20 14:30:09 +01:00
parent 9b29e68378
commit b5e9afe5a4
Signed by: Jef Roosens
GPG Key ID: B75D4F293C7052DB
2 changed files with 33 additions and 7 deletions

14
nas.yml
View File

@ -7,13 +7,6 @@
- common
tags: base
- hosts: nas
become: yes
roles:
- ntfy
- ntfy-server
tags: ntfy
- name: Configure BTRFS RAID
hosts: nas
become: yes
@ -21,6 +14,13 @@
- raid
tags: raid
- hosts: nas
become: yes
roles:
- ntfy
- ntfy-server
tags: ntfy
- name: Set up Samba
hosts: nas
become: yes

View File

@ -8,10 +8,36 @@
export RESTIC_REPOSITORY='rest:http://{{ groups['nas'][0] }}:8000/backups'
export RESTIC_PASSWORD_FILE='/etc/backups/restic_backups_passwd'
log_file='/tmp/backup-all.sh.log'
rm -f "$log_file"
for script in $(find /etc/backups -name '*.backup.sh'); do
T="$(date +%s)"
/usr/bin/bash "$script"
res="$?"
T="$(($(date +%s)-T))"
if [[ $res == 0 ]]; then
header='OK'
else
header="FAIL ($res)"
fi
printf \
"%s: %s in %02dh%02dm%02ds\n" \
"$(basename "$script")" "$header" \
"$((T/3600%24))" "$((T/60%60))" "$((T%60))" \
>> "$log_file"
done
# Prune older backups
/usr/local/bin/restic forget --keep-last 7 && \
/usr/local/bin/restic prune
# Send status notification
ntfy publish \
--title "Backups ($(hostname))" \
homelab "$(cat "$log_file")"