From 12683853e5dc188d20074f9b43951b81ec3225cf Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Thu, 29 Dec 2022 16:34:31 -0500 Subject: [PATCH] Add scripts for backing up to NAS based on restic --- restic-backup/.local/bin/restic-backup | 24 ++++++++++++++++++++++++ restic-backup/.local/bin/restic-wrapper | 7 +++++++ 2 files changed, 31 insertions(+) create mode 100755 restic-backup/.local/bin/restic-backup create mode 100755 restic-backup/.local/bin/restic-wrapper diff --git a/restic-backup/.local/bin/restic-backup b/restic-backup/.local/bin/restic-backup new file mode 100755 index 0000000..7bb5577 --- /dev/null +++ b/restic-backup/.local/bin/restic-backup @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e + +source ~/.config/restic-backup/config.sh + +cleanup() { + pass gocrypt close || true > /dev/null 2>&1 +} + +trap cleanup EXIT + +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 "$snap" + sudo btrfs subvol delete "$snap" || true +done diff --git a/restic-backup/.local/bin/restic-wrapper b/restic-backup/.local/bin/restic-wrapper new file mode 100755 index 0000000..84adee2 --- /dev/null +++ b/restic-backup/.local/bin/restic-wrapper @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -e + +source ~/.config/restic-backup/config.sh +pass gocrypt open || true +sudo restic --password-file /dev/stdin -r "$RESTIC_BACKUP_REPO" $@ <<< $(pass show "$RESTIC_BACKUP_PASS")