fix: schedule weekly full postgres backup
Some checks failed
CI / test (pull_request) Failing after 4m45s
CI / deploy (pull_request) Has been skipped

This commit is contained in:
2026-09-15 18:45:27 +03:00
parent 5c3883beca
commit 384cd550d5
6 changed files with 37 additions and 8 deletions

View File

@@ -0,0 +1,9 @@
#!/bin/sh
set -eu
temporary=$(mktemp)
trap 'rm -f -- "$temporary"' EXIT HUP INT TERM
crontab -l 2>/dev/null | grep -v 'postgres-backup.sh' > "$temporary" || true
printf '%s\n' '30 3 * * 0 flock -n /tmp/miem-postgres-backup.lock /srv/miem_workers/infra/postgres-backup.sh >/dev/null 2>&1' >> "$temporary"
crontab "$temporary"

18
infra/postgres-backup.sh Normal file
View File

@@ -0,0 +1,18 @@
#!/bin/sh
set -eu
umask 077
app_dir=/srv/miem_workers
backup_dir=/home/codex/backups/postgres
backup="$backup_dir/postgres-latest.sql"
temporary="$backup.tmp.$$"
mkdir -p "$backup_dir"
trap 'rm -f -- "$temporary"' EXIT HUP INT TERM
cd "$app_dir"
docker compose exec -T postgres sh -c 'pg_dumpall -U "$POSTGRES_USER"' > "$temporary"
test -s "$temporary"
mv "$temporary" "$backup"
find /home/codex/backups/miem_workers -maxdepth 1 -type f -name 'miem_workers-*.sql' -delete 2>/dev/null || true
printf '%s\n' "Created $backup"