29 lines
770 B
Bash
Executable File
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"
|