From dd8fd61c326f18e9b6c81c0fac00d613cc85eb3c Mon Sep 17 00:00:00 2001 From: Felipe Coutinho Date: Sat, 21 Mar 2026 15:06:36 +0000 Subject: [PATCH] =?UTF-8?q?refactor:=20simplifica=20backup.sh=20=E2=80=94?= =?UTF-8?q?=20pg=5Frestore,=20log=20din=C3=A2mico=20e=20rclone=20escopado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Substitui terceiro pg_dump (data-only) por pg_restore sobre o .dump já criado, eliminando uma conexão extra ao banco em ambos os modos - Move timestamp para dentro de log() para refletir o horário real de cada mensagem, não apenas o instante de início do script - Escopa rclone copy por TIMESTAMP para não re-enviar backups anteriores a cada execução Co-Authored-By: Claude Sonnet 4.6 --- scripts/backup.sh | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/scripts/backup.sh b/scripts/backup.sh index 9ea3403..5a863cf 100755 --- a/scripts/backup.sh +++ b/scripts/backup.sh @@ -48,9 +48,7 @@ RETENTION_REMOTE_DAYS=30 # ============================================================ TIMESTAMP=$(date +"%Y-%m-%d_%H-%M") -LOG_PREFIX="[$(date '+%Y-%m-%d %H:%M:%S')]" - -log() { echo "$LOG_PREFIX $*"; } +log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"; } mkdir -p "$BACKUP_DIR" @@ -69,9 +67,6 @@ if [[ "$DB_MODE" == "remote" ]]; then pg_dump --no-owner --no-privileges \ "$REMOTE_DB_URL" | gzip > "$SQL_FILE" - pg_dump --data-only --schema=public --no-owner --no-privileges \ - "$REMOTE_DB_URL" | gzip > "$DATA_FILE" - elif [[ "$DB_MODE" == "docker" ]]; then docker exec "$DOCKER_CONTAINER" pg_dump \ -U "$DOCKER_DB_USER" -Fc "$DOCKER_DB_NAME" > "$DUMP_FILE" @@ -79,15 +74,15 @@ elif [[ "$DB_MODE" == "docker" ]]; then docker exec "$DOCKER_CONTAINER" pg_dump \ -U "$DOCKER_DB_USER" "$DOCKER_DB_NAME" | gzip > "$SQL_FILE" - docker exec "$DOCKER_CONTAINER" pg_dump \ - --data-only --schema=public \ - -U "$DOCKER_DB_USER" "$DOCKER_DB_NAME" | gzip > "$DATA_FILE" - else log "ERRO: DB_MODE inválido ('$DB_MODE'). Use 'remote' ou 'docker'." exit 1 fi +# Extrai dados puros do dump custom (sem nova conexão ao banco) +pg_restore --data-only --schema=public --no-owner --no-privileges \ + "$DUMP_FILE" | gzip > "$DATA_FILE" + log "Dump concluído: $(du -sh "$DUMP_FILE" | cut -f1) (.dump) | $(du -sh "$SQL_FILE" | cut -f1) (.sql.gz) | $(du -sh "$DATA_FILE" | cut -f1) (.data.sql.gz)" # --- Upload para Google Drive --- @@ -95,7 +90,7 @@ if ! command -v rclone &>/dev/null; then log "AVISO: rclone não encontrado. Pulando upload." else rclone copy "$BACKUP_DIR" "$GDRIVE_REMOTE" \ - --include "openmonetis_*" + --include "openmonetis_${TIMESTAMP}*" log "Upload concluído → $GDRIVE_REMOTE" # Limpeza remota