sanity checks

This commit is contained in:
snaki 2022-05-26 14:08:26 +02:00
parent 220a653d53
commit 9d79f9f5df
No known key found for this signature in database
GPG key ID: C57B0E9414459801

View file

@ -1,40 +1,56 @@
#!/bin/bash #!/bin/bash
source config.sh source config.sh
set -euo pipefail
function main { function main {
date=$(date +%Y-%m-%d) date=$(date +%Y-%m-%d)
month=$(date +%B) month=$(date +%B)
for i in ${!SUBVOLS[@]} for i in ${!SUBVOLS[@]}; do
do snapName=${VOLNAME[$i]}.$date
snapName=${VOLNAME[$i]}.$date snapYest=$SNAPDIR${VOLNAME[$i]}.$(date -d "$date -1 day" +%Y-%m-%d)
snapYest=$SNAPDIR${VOLNAME[$i]}.$(date -d "$date -1 day" +%Y-%m-%d) if [[ -d "$SNAPDIR$snapName" ]]; then
echo "backup already run today"
continue
else
btrfs subvolume snapshot -r ${SUBVOLS[$i]} $SNAPDIR$snapName btrfs subvolume snapshot -r ${SUBVOLS[$i]} $SNAPDIR$snapName
if [[ -d "$snapYest" && $bkType = "daily" && $? -ne 0 ]] fi
then if [[ -d "$snapYest" && $bkType = "daily" && $? = 0 ]]; then
btrfs send -p $snapYest $SNAPDIR$snapName | gpg --batch -er $PUBKEY -o - | rclone rcat $RCLONEDIR$month/$snapName.pgp btrfs send -p $snapYest $SNAPDIR$snapName | gpg --batch -er $PUBKEY -o - | rclone rcat $RCLONEDIR$month/$snapName.pgp
else else
btrfs send $SNAPDIR$snapName | gpg --batch -er $PUBKEY -o - | rclone rcat $RCLONEDIR$snapName.pgp btrfs send $SNAPDIR$snapName | gpg --batch -er $PUBKEY -o - | rclone rcat $RCLONEDIR$snapName.pgp
fi fi
if [[ $bktype = monthly ]]
then if [[ $bktype = monthly && "rclone ls $RCLONEDIR$(date -d "$month -1" +B%)" ]]; then
for f in `seq 1 2` for f in `seq 1 2`; do
do btrfs subvolume delete $SNAPDIR${VOLNAME[$i]}.$(date -d "$date -$f day" +%Y-%m-%d)
btrfs subvolume delete $SNAPDIR${VOLNAME[$i]}.$(date -d "$date -$f day" +%Y-%m-%d) done
done rclone delete $RCLONEDIR$(date -d "$month -1 month" +%B)/
rclone delete $RCLONEDIR$(date -d "$month -1 month" +%B)/ else
else btrfs subvolume delete $SNAPDIR${VOLNAME[$i]}.$(date -d "$date -2 day" +%Y-%m-%d)
btrfs subvolume delete $SNAPDIR${VOLNAME[$i]}.$(date -d "$date -2 day" +%Y-%m-%d) fi
fi
done done
} }
if [ `date +%d` != "01" ] rclone ls $RCLONEDIR > /dev/null 2>&1
then if [[ $? = 0 ]]; then
gpg --list-key $PUBKEY > /dev/null 2>&1
if [[ $? = 0 ]]; then
testDate
else
echo "pubkey wrong or not found exit code: $?"
exit
fi
else
echo "rclone dir wrong or not found exit code: $?"
exit
fi
function testDate {
if [ `date +%d` != "01" ]; then
bkType=daily bkType=daily
main main
else else
bkType=monthly bkType=monthly
main main
fi fi
}