django db backup bash
#!/usr/bin/env bash
# backup-db.sh — daily PostgreSQL dump, 14-day retention
set -euo pipefail
BACKUP_DIR="/home/debian/backups/db"
DATE=$(date +%Y-%m-%d_%H%M)
FILE="$BACKUP_DIR/swaygo_db_$DATE.sql.gz"
mkdir -p "$BACKUP_DIR"
# Dump and compress
pg_dump -U swaygo -h 127.0.0.1 swaygo_db | gzip > "$FILE"
echo "$(date): backup written to $FILE ($(du -sh "$FILE" | cut -f1))"
# Keep last 14 days only
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +14 -delete
echo "$(date): old backups pruned"