Files
homelab-infra/ops/restore-tests/unraid-user-scripts.md
T

2.2 KiB

Unraid User Scripts fuer Restore-Checks

Ziel

Diese Vorlagen binden die validierten Restore-Checks in Unraid User Scripts ein.

Host-Repo-Pfad:

/mnt/user/services/homelab

Script 1 - restore-freshness-weekly

Zeit:

  • Montag, 06:30

Inhalt:

#!/bin/bash
pwsh -File /mnt/user/services/homelab/ops/restore-tests/run-restore-checks.ps1 -Mode freshness \
  > /mnt/user/backups/restore-reports/freshness-$(date +%F).md

Erwartung:

  • prueft Dump-Frische
  • prueft Report-Frische
  • startet keine Container

Script 2 - restore-vaultwarden-monthly

Zeit:

    1. Samstag im Monat, 07:00

V1-Inhalt:

#!/bin/bash
pwsh -File /mnt/user/services/homelab/ops/restore-tests/run-restore-checks.ps1 -Mode vaultwarden -WhatIf \
  > /mnt/user/backups/restore-reports/vaultwarden-plan-$(date +%F).md

Script 3 - restore-gitea-monthly

Zeit:

    1. Samstag im Monat, 07:00

V1-Inhalt:

#!/bin/bash
pwsh -File /mnt/user/services/homelab/ops/restore-tests/run-restore-checks.ps1 -Mode gitea -WhatIf \
  > /mnt/user/backups/restore-reports/gitea-plan-$(date +%F).md

Script 4 - restore-paperless-bimonthly

Zeit:

  • jeder 2. Monat, 2. Samstag, 08:00

V1-Inhalt:

#!/bin/bash
pwsh -File /mnt/user/services/homelab/ops/restore-tests/run-restore-checks.ps1 -Mode paperless -WhatIf \
  > /mnt/user/backups/restore-reports/paperless-plan-$(date +%F).md

Warum V1 mit -WhatIf

  • keine unkontrollierten Restore-Laeufe im Cron
  • erst Host-Scheduler sauber verdrahten
  • spaeter gezielt auf echte Vollautomatik umstellen

V2 Zielbild

Spaeter werden die drei Restore-Scripts von Plan-/Scaffold-Modus auf echte Host-Ausfuehrung umgestellt:

  1. Restore aus Borg
  2. Testcontainer starten
  3. Smoke-Test
  4. Report schreiben
  5. optional ntfy
  6. Bereinigung

Optionales ntfy Wrapper-Muster

Wenn ntfy spaeter dazukommt, soll der Host-Job nur Erfolg/Fehler referenzieren, nicht den ganzen Report in die Nachricht kippen.

Beispiel:

#!/bin/bash
REPORT="/mnt/user/backups/restore-reports/freshness-$(date +%F).md"
if pwsh -File /mnt/user/services/homelab/ops/restore-tests/run-restore-checks.ps1 -Mode freshness > "$REPORT"; then
  echo "Restore freshness check ok: $REPORT"
else
  echo "Restore freshness check failed: $REPORT"
fi