15 lines
563 B
Bash
Executable File
15 lines
563 B
Bash
Executable File
#!/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"
|