Files

29 lines
770 B
Bash
Executable File

#!/bin/sh
set -eu
BACKUP_DIR="${BACKUP_DIR:-./backups}"
UPLOAD_DIR="${UPLOAD_DIR:-./storage/uploads}"
RETENTION_DAYS="${BACKUP_RETENTION_DAYS:-14}"
DATABASE_URL_VALUE="${DATABASE_URL:-}"
STAMP="$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"
if [ -z "$DATABASE_URL_VALUE" ]; then
echo "DATABASE_URL nao configurada." >&2
exit 1
fi
pg_dump "$DATABASE_URL_VALUE" > "$BACKUP_DIR/db-$STAMP.sql"
if [ -d "$UPLOAD_DIR" ]; then
tar -czf "$BACKUP_DIR/uploads-$STAMP.tar.gz" -C "$UPLOAD_DIR" .
else
echo "UPLOAD_DIR nao existe; pulando copia de uploads." >&2
fi
find "$BACKUP_DIR" -type f -mtime +"$RETENTION_DAYS" -name 'db-*.sql' -delete
find "$BACKUP_DIR" -type f -mtime +"$RETENTION_DAYS" -name 'uploads-*.tar.gz' -delete
echo "Backup concluido em $BACKUP_DIR"