From 3b65c099f5483d4541d48bf0ce4263b4aeff9018 Mon Sep 17 00:00:00 2001 From: snaki Date: Wed, 25 May 2022 15:52:07 +0200 Subject: [PATCH] initial commit uwu --- btrbk.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 btrbk.sh diff --git a/btrbk.sh b/btrbk.sh new file mode 100644 index 0000000..16ca788 --- /dev/null +++ b/btrbk.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +pubKey="DB7D3FF57FB85CC81A1D4675371DB61AC29E4986" +subVols=("/" "/home") +volName=("root" "home") +snapDir="/.snapshots/" +rcloneDir="test:/mnt/bk/new/" + +function main { + for i in ${!subVols[@]} + do + snapName=${volName[$i]}.$(date +%Y-%m-%d) + snapYest=$snapDir${volName[$i]}.$(date -d "yesterday" +%Y-%m-%d) + btrfs subvolume snapshot -r ${subVols[$i]} $snapDir$snapName + if [[ -d "$snapYest" && $bkType = daily ]] + then + btrfs send -p $snapYest $snapDir$snapName | gpg --batch -er $pubKey -o - | rclone rcat $rcloneDir$(date +%B)/$snapName.pgp + + else + btrfs send $snapDir$snapName | gpg --batch -er $pubKey -o - | rclone rcat $rcloneDir$snapName.pgp + fi + if [[ $bktype = monthly ]] + then + for f in `seq 1 2` + do + btrfs subvolume delete $snapDir${volName[$i]}.$(date -d "$f days ago" +%Y-%m-%d) + done + rclone delete $rcloneDir$(date -d "1 month ago" +%B)/ + else + btrfs subvolume delete $snapDir${volName[$i]}.$(date -d "2 days ago" +%Y-%m-%d) + fi + done +} + +if [ `date +%d` != "01" ] + then + bkType=daily + main + else + bkType=monthly + main +fi