Menu
AkurAI-Build
publicLatest change b2fb6810b8844f39a9752f65118c05ffecf28160 - Fold AkurAI EC2 operations into Build CLI by Ólafur Búi Ólafsson
set -euo pipefail
sudo systemctl is-enabled --quiet bunfork-backup.timer
sudo systemctl is-active --quiet bunfork-backup.timer
sudo systemctl show bunfork-backup.service -p Result --value | grep -qx success
latest="$(sudo find /var/backups/bunfork -maxdepth 1 -type f -name 'bunfork-*.db' -printf '%T@ %p\n' | sort -nr | head -1 | cut -d' ' -f2-)"
[ -n "$latest" ] && sudo test -s "$latest"
[ "$(sudo stat -c %a "$latest")" = 600 ]
[ "$(sudo stat -c %U:%G "$latest")" = bunfork:bunfork ]
header="$(sudo od -An -N16 -tx1 "$latest" | tr -d ' \n')"
[ "$header" != 53514c69746520666f726d6174203300 ]
scratch="$(sudo -u bunfork mktemp -d /var/backups/bunfork/.verify-XXXXXXXX)"
cleanup() { sudo rm -rf "$scratch"; }
trap cleanup EXIT
sudo -u bunfork install -m 0600 "$latest" "$scratch/backup.db"
sudo -u bunfork install -m 0600 "$latest" "$scratch/restored.db"
sudo -u bunfork /opt/bunfork/current/bunfork \
--database "$scratch/restored.db" \
--key-file /etc/bunfork/db.key \
restore "$scratch/backup.db" --yes >/dev/null
sudo -u bunfork /opt/bunfork/current/bunfork \
--database "$scratch/restored.db" \
--key-file /etc/bunfork/db.key migrate >/dev/null
count="$(sudo find /var/backups/bunfork -maxdepth 1 -type f -name 'bunfork-*.db' | wc -l)"
mtime="$(sudo stat -c %y "$latest" | cut -d. -f1)Z"
printf 'timer=active latest=%s backups=%s recovery=verified\n' "$mtime" "$count"