VACUUM INTO refuses to overwrite, so re-runs silently kept stale data (backup showed 6 users, live had 2). Caught by comparing counts.
14 lines
657 B
Bash
Executable file
14 lines
657 B
Bash
Executable file
#!/usr/bin/env bash
|
|
# Daily SQLite backup: VACUUM INTO a timestamped copy, keep 7 days.
|
|
# Usage: ./deploy/termux-backup.sh (run from repo root; safe while live)
|
|
# Termux has no cron, so run this from Termux:Tasker, a daily alarm via
|
|
# Termux:API, or manually. One line, one snapshot.
|
|
cd "$(dirname "$0")/.."
|
|
OUT="./backups/whaleprep-$(date +%F).db"
|
|
mkdir -p ./backups
|
|
# VACUUM INTO refuses to overwrite, so remove today's snapshot first —
|
|
# otherwise re-runs silently keep stale data.
|
|
rm -f "$OUT"
|
|
sqlite3 ./whaleprep.db "VACUUM INTO '$OUT';"
|
|
ls -t ./backups/whaleprep-*.db | tail -n +8 | xargs -r rm -f
|
|
echo "backup -> $OUT ($(du -h "$OUT" | cut -f1))"
|