39 lines
789 B
Bash
Executable File
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
|