diff --git a/docker-compose-infra-main.yml b/docker-compose-infra-main.yml index bde7ea7..4b370e6 100644 --- a/docker-compose-infra-main.yml +++ b/docker-compose-infra-main.yml @@ -61,9 +61,14 @@ services: mkdir -p "/backup" while true; do f="backup_$(date +%Y%m%d_%H%M%S).sql.gz" + tmp="/backup/$${f}.tmp" echo "[$(date '+%Y-%m-%d %H:%M:%S')] Starting backup: $${f}" - pg_dumpall -h postgres -U postgres | gzip > "/backup/$${f}" - echo "[$(date '+%Y-%m-%d %H:%M:%S')] Backup complete" + if pg_dumpall -h postgres -U postgres > "$${tmp}" && gzip -f "$${tmp}" && mv "$${tmp}.gz" "/backup/$${f}"; then + echo "[$(date '+%Y-%m-%d %H:%M:%S')] Backup complete" + else + echo "[$(date '+%Y-%m-%d %H:%M:%S')] Backup FAILED, removing partial file" + rm -f "$${tmp}" "$${tmp}.gz" + fi find /backup -name "backup_*.sql.gz" -mtime +7 -delete 2>/dev/null || true sleep 86400 done