Files
MobilityOps/deploy/unraid/verify-postgres-backups.sh
T
NuklearRabbit acd8b82b09
MobilityOps acceptance / backend (push) Failing after 20s
MobilityOps acceptance / frontend (push) Successful in 26s
MobilityOps acceptance / e2e (push) Skipped
M44: harden release integrity and assurance
2026-08-21 18:32:02 +02:00

16 lines
879 B
Bash
Executable File

#!/bin/sh
set -eu
destination="${1:-backups/postgres}"
case "$destination" in ""|"/"|".") echo "Unsafe backup destination: $destination" >&2; exit 1;; esac
latest="$(find "$destination" -maxdepth 1 -type f -name 'mobilityops-*.dump' | sort -r | head -n 1)"
[ -n "$latest" ] || { echo "No MobilityOps backup found" >&2; exit 1; }
[ -f "$latest.sha256" ] || { echo "Checksum missing for $latest" >&2; exit 1; }
(cd "$destination" && sha256sum -c "$(basename "$latest.sha256")")
docker compose -p "${COMPOSE_PROJECT_NAME:-mobilityops}" \
-f compose.yaml -f compose.unraid.yaml exec -T db pg_restore --list < "$latest" > /dev/null
docker compose -p "${COMPOSE_PROJECT_NAME:-mobilityops}" \
-f compose.yaml -f compose.unraid.yaml exec -T backup \
/opt/mobilityops/restore-drill-postgres.sh "/backups/$(basename "$latest")"
printf 'Verified and restore-drilled: %s\n' "$latest"