#!/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"