25 lines
776 B
Bash
25 lines
776 B
Bash
|
|
#!/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"
|