Files
LWLT-AI/infra/backup-postgres.sh
2026-07-13 19:57:46 +08:00

16 lines
599 B
Bash
Executable File

#!/usr/bin/env sh
set -eu
: "${DATABASE_URL:?DATABASE_URL is required}"
BACKUP_DIR="${BACKUP_DIR:-/var/backups/ltjt-platform}"
RETENTION_DAYS="${RETENTION_DAYS:-30}"
mkdir -p "$BACKUP_DIR"
timestamp="$(date -u +%Y%m%dT%H%M%SZ)"
output="$BACKUP_DIR/ltjt-platform-$timestamp.dump"
pg_dump --format=custom --no-owner --file="$output" "$DATABASE_URL"
sha256sum "$output" > "$output.sha256"
find "$BACKUP_DIR" -type f -name 'ltjt-platform-*.dump' -mtime "+$RETENTION_DAYS" -delete
find "$BACKUP_DIR" -type f -name 'ltjt-platform-*.dump.sha256' -mtime "+$RETENTION_DAYS" -delete
printf '%s\n' "$output"