sanity checks
This commit is contained in:
parent
220a653d53
commit
9d79f9f5df
64
btrbk.sh
64
btrbk.sh
|
@ -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
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue