db: auto-backup before server start + daily cron
- backup-db.sh: copies assets.db to /home/oplabs/backups/canteen-db/ - start.sh: runs backup automatically before every launch - Daily cron at 3am for unattended backups - Keeps last 30 backups, prunes oldest
This commit is contained in:
Executable
+22
@@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Auto-backup for canteen-asset-tracker database
|
||||||
|
# Runs before every server start and on a cron schedule
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
DB_DIR="/home/oplabs/projects/canteen-asset-tracker"
|
||||||
|
BACKUP_DIR="/home/oplabs/backups/canteen-db"
|
||||||
|
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
|
||||||
|
|
||||||
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
|
||||||
|
for db in assets.db; do
|
||||||
|
if [ -f "${DB_DIR}/${db}" ]; then
|
||||||
|
cp "${DB_DIR}/${db}" "${BACKUP_DIR}/${db}-${TIMESTAMP}"
|
||||||
|
# Keep only last 30 backups
|
||||||
|
ls -t "${BACKUP_DIR}/${db}-"* 2>/dev/null | tail -n +31 | xargs rm -f 2>/dev/null || true
|
||||||
|
echo "✅ Backed up ${db} -> ${BACKUP_DIR}/${db}-${TIMESTAMP}"
|
||||||
|
else
|
||||||
|
echo "⚠️ ${db} not found, skipping"
|
||||||
|
fi
|
||||||
|
done
|
||||||
@@ -36,6 +36,17 @@ if [ "${CANTEEN_WIPE_DB:-}" = "1" ]; then
|
|||||||
rm -f "$DB_PATH" "${DB_PATH}-shm" "${DB_PATH}-wal"
|
rm -f "$DB_PATH" "${DB_PATH}-shm" "${DB_PATH}-wal"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# ── Back up existing DB before launch ─────────────────────────────────────────
|
||||||
|
if [ -f "$DB_PATH" ]; then
|
||||||
|
BACKUP_DIR="/home/oplabs/backups/canteen-db"
|
||||||
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
|
||||||
|
cp "$DB_PATH" "${BACKUP_DIR}/assets.db-${TIMESTAMP}"
|
||||||
|
# Keep last 30 backups
|
||||||
|
ls -t "${BACKUP_DIR}/assets.db-"* 2>/dev/null | tail -n +31 | xargs rm -f 2>/dev/null || true
|
||||||
|
echo " Backup: ${BACKUP_DIR}/assets.db-${TIMESTAMP}"
|
||||||
|
fi
|
||||||
|
|
||||||
# ── Launch ───────────────────────────────────────────────────────────────────
|
# ── Launch ───────────────────────────────────────────────────────────────────
|
||||||
echo "🚀 Starting Canteen Asset Tracker on https://0.0.0.0:${PORT}"
|
echo "🚀 Starting Canteen Asset Tracker on https://0.0.0.0:${PORT}"
|
||||||
echo " DB: $DB_PATH"
|
echo " DB: $DB_PATH"
|
||||||
|
|||||||
Reference in New Issue
Block a user