Projeto bot pontos

This commit is contained in:
2026-10-23 22:31:02 -03:00
parent 29614855ff
commit b35e1a7d69
116 changed files with 14523 additions and 0 deletions

28
scripts/backup-loop.sh Normal file
View File

@@ -0,0 +1,28 @@
#!/bin/sh
# Backup diário do Postgres com retenção (ARQUITETURA.md, 11.3 e 11.5).
# Roda no container "backup". IMPORTANTE: copie a pasta ./backups para fora
# da máquina (NAS ou outro servidor); um backup no mesmo disco não protege
# contra falha do disco.
set -eu
PGPASSWORD="$(cat /run/secrets/pg_password)"
export PGPASSWORD
INTERVAL="${BACKUP_INTERVAL_SECONDS:-86400}"
RETENTION_DAYS="${BACKUP_RETENTION_DAYS:-14}"
while true; do
timestamp="$(date +%Y%m%d-%H%M%S)"
file="/backups/botpontos-${timestamp}.dump"
if pg_dump -h "${PGHOST:-postgres}" -U "${PGUSER:-botpontos}" -d "${PGDATABASE:-botpontos}" -Fc -f "${file}.tmp"; then
mv "${file}.tmp" "$file"
echo "backup concluído: $file"
else
rm -f "${file}.tmp"
echo "backup FALHOU em ${timestamp}" >&2
fi
find /backups -name 'botpontos-*.dump' -mtime +"$RETENTION_DAYS" -delete
sleep "$INTERVAL"
done