41 lines
1.3 KiB
Bash
Executable file
41 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
source config.sh
|
|
set -euxo pipefail
|
|
|
|
function main {
|
|
date=$(date +%Y-%m-%d)
|
|
month=$(date +%B)
|
|
for i in ${!SUBVOLS[@]}
|
|
do
|
|
snapName=${VOLNAME[$i]}.$date
|
|
snapYest=$SNAPDIR${VOLNAME[$i]}.$(date -d "$date -1 day" +%Y-%m-%d)
|
|
btrfs subvolume snapshot -r ${SUBVOLS[$i]} $SNAPDIR$snapName
|
|
if [[ -d "$snapYest" && $bkType = "daily" && $? -ne 0 ]]
|
|
then
|
|
btrfs send -p $snapYest $SNAPDIR$snapName | gpg --batch -er $PUBKEY -o - | rclone rcat $RCLONEDIR$month/$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 "$date -$f day" +%Y-%m-%d)
|
|
done
|
|
rclone delete $RCLONEDIR$(date -d "$month -1 month" +%B)/
|
|
else
|
|
btrfs subvolume delete $SNAPDIR${VOLNAME[$i]}.$(date -d "$date -2 day" +%Y-%m-%d)
|
|
fi
|
|
done
|
|
}
|
|
|
|
if [ `date +%d` != "01" ]
|
|
then
|
|
bkType=daily
|
|
main
|
|
else
|
|
bkType=monthly
|
|
main
|
|
fi
|