#!/bin/sh set -eu umask 077 app_dir=$(CDPATH= cd -- "$(dirname "$0")/.." && pwd) backup_dir="$HOME/backups/postgres" backup="$backup_dir/postgres-latest.sql" temporary="$backup.tmp.$$" log() { logger -t miem-postgres-backup -- "$*" 2>/dev/null || true; } mkdir -p "$backup_dir" trap 'status=$?; rm -f -- "$temporary"; [ "$status" -eq 0 ] || log "backup failed"; exit "$status"' 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/backups/miem_workers" -maxdepth 1 -type f -name 'miem_workers-*.sql' -delete 2>/dev/null || true log "created $backup"