36 lines
1.4 KiB
Bash
36 lines
1.4 KiB
Bash
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
MODE="${1:-}"
|
|
SUCCESS_TOPIC="${2:-${RESTORE_SUCCESS_TOPIC:-homelab-info}}"
|
|
FAILURE_TOPIC="${RESTORE_FAILURE_TOPIC:-homelab-alerts}"
|
|
|
|
if [ -z "$MODE" ]; then
|
|
echo "Usage: $0 <freshness|vaultwarden|gitea|paperless|immich|authelia|komodo-bootstrap> [success_topic]" >&2
|
|
exit 1
|
|
fi
|
|
|
|
REPORT_ROOT="/mnt/user/backups/restore-reports"
|
|
REPORT_FILE="$REPORT_ROOT/${MODE}-$(date +%F).md"
|
|
WRAPPER_LOG="$REPORT_ROOT/_wrapper-${MODE}-$(date +%F).log"
|
|
|
|
mkdir -p "$REPORT_ROOT"
|
|
|
|
echo "Running restore job: $MODE"
|
|
echo "Inner report (written by restore script): $REPORT_FILE"
|
|
echo "Wrapper log (stdout/stderr of dispatcher): $WRAPPER_LOG"
|
|
|
|
# Der Restore-Job schreibt seinen Markdown-Report selbst nach $REPORT_FILE.
|
|
# Wir leiten stdout/stderr in eine separate Wrapper-Log-Datei, damit hier
|
|
# kein zweiter Schreiber denselben Pfad ueberschreibt.
|
|
if "$SCRIPT_DIR/run-restore-checks.sh" "$MODE" >"$WRAPPER_LOG" 2>&1; then
|
|
echo "Restore job succeeded, sending ntfy..."
|
|
"$SCRIPT_DIR/send-ntfy.sh" "$SUCCESS_TOPIC" "Restore job ok: $MODE" "Restore job succeeded. Report: $REPORT_FILE" default || true
|
|
echo "Done"
|
|
else
|
|
echo "Restore job failed, sending ntfy..."
|
|
"$SCRIPT_DIR/send-ntfy.sh" "$FAILURE_TOPIC" "Restore job failed: $MODE" "Restore job failed. Wrapper log: $WRAPPER_LOG (Report if written: $REPORT_FILE)" high || true
|
|
exit 1
|
|
fi
|