blob: f6444c9e05ef1ae1ce5cc988e400b027ede48486 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#!/usr/bin/env bash
set -euo pipefail
: "${AIGW_DATABASE_URL:?AIGW_DATABASE_URL is required}"
backup_dir="${AIGW_BACKUP_DIR:-./backups}"
retention_days="${AIGW_BACKUP_RETENTION_DAYS:-30}"
mkdir -p -- "$backup_dir"
chmod 700 "$backup_dir"
timestamp="$(date -u +%Y%m%dT%H%M%SZ)"
target="$backup_dir/aigw-$timestamp.dump"
pg_dump --dbname="$AIGW_DATABASE_URL" --format=custom --compress=9 --file="$target"
sha256sum "$target" >"$target.sha256"
find "$backup_dir" -maxdepth 1 -type f -name 'aigw-*.dump*' -mtime "+$retention_days" -delete
printf 'backup=%s\nchecksum=%s.sha256\n' "$target" "$target"
|