16 lines
599 B
Bash
Executable File
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"
|