#!/bin/sh export BORG_REPO=ssh://nas/storage/backups/kunsi-t470 export BORG_PASSCOMMAND='pass show nas/backup-pass' info() { printf "\n%s %s\n\n" "$( date )" "$*" >&2; } trap 'echo $( date ) Backup interrupted >&2; exit 2' INT TERM yay -Syu pass git push git --git-dir=$HOME/.cfg/ --work-tree=$HOME push info "Starting backup" borg create \ --stats \ --show-rc \ --compression lz4 \ --exclude-caches \ --exclude '/home/*/.cache/*' \ --exclude '/home/*/.dbus' \ \ ::$(date +%Y-%m-%d) \ /home/kunsi \ backup_exit=$? info "Pruning repository" borg prune \ --list \ --show-rc \ --keep-daily 7 \ --keep-weekly 4 \ --keep-monthly 6 \ prune_exit=$? global_exit=$(( backup_exit > prune_exit ? backup_exit : prune_exit )) if [ ${global_exit} -eq 1 ]; then info "Backup and/or Prune finished with a warning" fi if [ ${global_exit} -gt 1 ]; then info "Backup and/or Prune finished with an error" fi exit ${global_exit}