2.2 KiB
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:
-
- 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:
-
- 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:
- Restore aus Borg
- Testcontainer starten
- Smoke-Test
- Report schreiben
- optional
ntfy - 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