#!/usr/bin/env bash set -euo pipefail # Local default DB. For external databases adapt connection options separately. backup_dir="${1:?Usage: backup.sh /protected/backup/path}" mkdir -p "$backup_dir" chmod 700 "$backup_dir" umask 077 partial="$(mktemp "$backup_dir/.dilib-backup-XXXXXX.partial")" trap 'rm -f -- "$partial"' EXIT pg_dump --format=custom --file="$partial" dilib_dashboard pg_restore --list "$partial" >/dev/null final="$backup_dir/dilib-dashboard-$(date -u +%Y%m%dT%H%M%SZ)-$$.dump" mv -- "$partial" "$final" printf 'Backup created: %s\n' "$final"