#!/bin/bash set -euo pipefail BACKUP_DIR="${BACKUP_DIR:-/var/backups/colorfull}" RETENTION_DAYS="${RETENTION_DAYS:-7}" DB_CONTAINER="${DB_CONTAINER:-colorfull-db}" DB_NAME="${DB_NAME:-colorfull}" DB_USER="${DB_USER:-colorfull}" mkdir -p "$BACKUP_DIR" TIMESTAMP=$(date +%Y%m%d_%H%M%S) BACKUP_FILE="$BACKUP_DIR/colorfull_${TIMESTAMP}.sql.gz" echo "[$(date)] Starting backup to $BACKUP_FILE" docker exec "$DB_CONTAINER" pg_dump -U "$DB_USER" "$DB_NAME" | gzip > "$BACKUP_FILE" echo "[$(date)] Backup complete: $(ls -lh "$BACKUP_FILE" | awk '{print $5}')" find "$BACKUP_DIR" -name "colorfull_*.sql.gz" -mtime +"$RETENTION_DAYS" -delete echo "[$(date)] Cleaned up backups older than $RETENTION_DAYS days" echo "[$(date)] Current backups: $(ls "$BACKUP_DIR" | wc -l) files"