62146c5ce7
- 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
23 lines
701 B
Bash
Executable File
23 lines
701 B
Bash
Executable File
#!/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
|