107 lines
2.2 KiB
Markdown
107 lines
2.2 KiB
Markdown
# Unraid User Scripts fuer Restore-Checks
|
|
|
|
## Ziel
|
|
|
|
Diese Vorlagen binden die validierten Restore-Checks in Unraid User Scripts ein.
|
|
|
|
Host-Repo-Pfad:
|
|
|
|
```text
|
|
/mnt/user/services/homelab
|
|
```
|
|
|
|
## Script 1 - `restore-freshness-weekly`
|
|
|
|
Zeit:
|
|
|
|
- Montag, 06:30
|
|
|
|
Inhalt:
|
|
|
|
```bash
|
|
#!/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:
|
|
|
|
```bash
|
|
#!/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:
|
|
|
|
- 3. Samstag im Monat, 07:00
|
|
|
|
V1-Inhalt:
|
|
|
|
```bash
|
|
#!/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:
|
|
|
|
```bash
|
|
#!/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:
|
|
|
|
```bash
|
|
#!/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
|
|
```
|