Restore detailed backup mail reports with bounded local delivery

This commit is contained in:
admin committed 2026-09-10 16:45:18 +02:00
1 parent 3374019ad6
commit 99da6460d2
10 files changed
+396 -13

No files matched your search

+27 -1
View File
@@ -215,6 +215,32 @@ sudo /usr/local/sbin/app-restore.sh --local-run /pfad/zu/einem/alten/lauf \
Ein echter Restore benötigt passende Zielverzeichnisse, Anwendungsstände und Datenbanken sowie einen DB-Account mit Wiederherstellungsrechten. `--yes` ist keine automatische Datenrettung bei Fehlern; bei einem Teilfehler bleiben angehaltene Dienste für die manuelle Prüfung stehen.
## Mailberichte
Jeder beendete Backup-Lauf kann wieder einen ausführlichen UTF-8-Bericht senden:
Status `SUCCESS`/`FAIL`, Host, Laufzeit, letzte Phase, Upload-/Prüfergebnis,
Staging-Größen, Archivgrößen und Protokollauszug. Der Betreff verwendet wieder
das Schema `[app-backup] SUCCESS/FAIL HOST LAUF`.
In `/etc/app-backup/app-backup.conf` werden vorhandene Einstellungen weiterverwendet:
```bash
ENABLE_MAIL_REPORT=true
MAIL_TO="johannes"
MAIL_FROM="" # Standard: app-backup@<FQDN>
MAIL_SUBJECT_PREFIX="[app-backup]"
MAIL_INCLUDE_LOG_TAIL_LINES=200
MAIL_SEND_TIMEOUT=30
```
`MAIL_TO` darf wie bisher ein lokaler Alias oder eine Mailadresse sein. Versand
über `/usr/sbin/sendmail`; die lokale Mailzustellung muss dafür eingerichtet sein.
Der Bericht bleibt zusätzlich unter `/var/log/app-backup/report_LAUF.eml` mit
Modus `600` erhalten. Versandfehler werden protokolliert und verändern das
Backup-Ergebnis nicht. `--check` und Restore-Prüfungen senden keine Backup-Mail.
Die Mail bestätigt den Backup-Lauf; beim Update ist weiterhin dessen abschließende
`result.txt` nach der zusätzlichen Remote-Restore-Prüfung maßgeblich.
## Tests
```bash
@@ -222,4 +248,4 @@ docker build -t app-backup-test -f tests/Dockerfile .
docker run --rm --network none -v "$PWD:/src:ro" app-backup-test
```
ShellCheck, echte MariaDB-Dumps/Imports, gzip/zstd, rsync, lokale Crypt-Uploads und Remote-Restore sowie Fehlerfälle laufen im Container. systemd und Nextcloud-occ sind simuliert. Eine echte Rocky-/Nextcloud-/Gitea-/OneDrive-Wiederherstellungsprobe bleibt Teil der Serverabnahme.
ShellCheck, echte MariaDB-Dumps/Imports, gzip/zstd, rsync, lokale Crypt-Uploads und Remote-Restore sowie Fehlerfälle laufen im Container. systemd, Nextcloud-occ und der Mailversand sind simuliert; Nachrichten werden nur lokal erfasst. Am 10.09.2026 bestanden alle 65 Tests. Eine echte Rocky-/Nextcloud-/Gitea-/OneDrive-Wiederherstellungsprobe und die tatsächliche Mailzustellung bleiben Teil der Serverabnahme.