dotfiles/restic-backup/.local/bin/restic-backup

39 lines
789 B
Bash
Executable File

#!/usr/bin/env bash
set -e
source ~/.config/restic-backup/config.sh
startsudo() {
sudo -v
( while true; do sudo -v; sleep 50; done; ) &
SUDO_PID="$!"
}
stopsudo() {
kill "$SUDO_PID"
sudo -k
}
cleanup() {
pass gocrypt close || true > /dev/null 2>&1
stopsudo
}
trap cleanup EXIT SIGINT SIGTERM
startsudo
pass gocrypt close > /dev/null 2>&1 || true
PASS_GOCRYPT_CLOSE_TIMEOUT=2147483648 pass gocrypt open
for dir in ${RESTIC_BACKUP_SUBVOL_PATHS[@]}; do
parent="$(dirname $dir)"
snap="$parent/$(basename $dir)-restic"
echo "snap = $snap"
sudo btrfs subvol delete "$snap" > /dev/null 2>&1 || true
sudo btrfs subvol snap "$dir" "$snap"
restic-wrapper --verbose backup --exclude-caches "$snap"
sudo btrfs subvol delete "$snap" || true
done
stopsudo