Make backup report hostname configurable

This commit is contained in:
admin committed 2026-09-12 18:53:01 +02:00
1 parent 99da6460d2
commit 64eab1d3c2
7 files changed
+121 -7

No files matched your search

+20 -1
View File
@@ -349,6 +349,25 @@ Absender `app-backup@<FQDN>` bei leerem/fehlendem `MAIL_FROM`, Betreffpräfix
`/usr/sbin/sendmail`; `MAIL_SEND_TIMEOUT` begrenzt dessen Aufruf auf 30 Sekunden
(zulässig 1–300). Der Log-Auszug darf 0–10000 Zeilen umfassen.
Seit 12.09.2026 überschreibt `MAIL_HOSTNAME` den Hostnamen im Betreff und im
`Host:`-Feld des Berichts. Für Gemini in `/etc/app-backup/app-backup.conf` setzen:
```bash
MAIL_HOSTNAME="gemini.jr-it-services.de"
```
Der Betreff folgt weiterhin dem Schema `[app-backup] SUCCESS/FAIL HOST LAUF`,
zum Beispiel `[app-backup] SUCCESS gemini.jr-it-services.de appbackup_2026-…`.
Ein leerer oder fehlender Wert fällt auf `socket.getfqdn()` zurück. Die Einstellung
gilt für Erfolgs- und Fehlermails und bleibt beim Paketupdate erhalten. Vor dem
Update gesetzt, wirkt sie bereits im Abnahmebackup des neuen Pakets. Spätere
Änderungen werden beim nächsten Lauf eingelesen; ein Dienstneustart entfällt.
Systemhostname, Archivnamen und Manifest-Hostname bleiben unverändert.
Auch der Absender bleibt unabhängig: Ein explizites `MAIL_FROM` wird beibehalten;
bei leerem Wert wird weiterhin `app-backup@<System-FQDN>` verwendet.
Header-Zeilenumbrüche im Override werden wie bei den anderen Mailheadern
abgewiesen; ein Berichtsfehler verändert den Backup-Exit-Code nicht.
Der UTF-8-Bericht enthält Zeit, Host, Status, Exit-Code, Dauer, Lauf-ID und letzte
Phase, Konfigurations-/Arbeits-/Archivpfade, Kompression, Crypt-Ziel und getrennten
Uploadstatus. Dieser wird erst nach erfolgreichem Rücklesen aller Inhalte und
@@ -536,7 +555,7 @@ Die Entfernung der drei DB-Dateien aus dem aktuellen Baum löscht deren Historie
Reproduzierbar mit `tests/Dockerfile` und `tests/run.sh`. Der Container bekommt das Repository nur lesbar und benötigt während der Tests kein Netzwerk. Die MariaDB läuft ohne TCP-Port in einem temporären Verzeichnis. systemd/occ werden simuliert; alle eigentlichen Archive, Dateikopien, Dumps/Imports und Crypt-Operationen sind real.
Verifikation am 10.09.2026: **65 Testfälle im vollständigen Durchlauf erfolgreich** (603,4 Sekunden), einschließlich ausführlicher Mailberichte und der aktualisierten Paketinstallation. Shell-Syntax und ShellCheck ohne Befund. Testumgebung: Debian 13.6, MariaDB 11.8.6, rclone 1.60.1-DEV (Distributionspaket), ShellCheck 0.10.0. Diese Versionsangaben beschreiben die Testumgebung, keine Empfehlung für die Produktivversion. Der MTA wird durch eine lokale Nachrichten-Attrappe ersetzt; es wurden keine echten E-Mails versendet. Die Zustellung auf Gemini ist nach Installation zu prüfen.
Verifikation am 12.09.2026: **68 Testfälle abgedeckt**. Im Gesamtlauf (741,0 Sekunden) bestanden 63 Fälle direkt. Fünf Mail-Testprüfungen erwarteten LF statt der korrekten SMTP-Zeilenumbrüche CRLF; nach Korrektur dieser Prüfungen bestanden alle 13 gezielt wiederholten Mail-/Installertests (155,9 Sekunden), einschließlich der fünf betroffenen Fälle. Geprüft sind Hostname-Override bei Erfolg und Fehler, leerer/fehlender Wert, unveränderter Absender, Header-Schutz und Paketupdate mit erhaltener Einstellung. Shell-Syntax und ShellCheck ohne Befund. Testumgebung: Debian 13.6, MariaDB 11.8.6, rclone 1.60.1-DEV (Distributionspaket), ShellCheck 0.10.0. Diese Versionsangaben beschreiben die Testumgebung, keine Empfehlung für die Produktivversion. Der MTA wird durch eine lokale Nachrichten-Attrappe ersetzt; es wurden keine echten E-Mails versendet. Die Zustellung auf Gemini ist nach Installation zu prüfen.
Die Regressionstests für `RCLONE_SIZE_ONLY` und zusätzliche Marker-Zeilenumbrüche scheiterten vor den jeweiligen Korrekturen mit einem fälschlich erfolgreichen Backup und bestanden danach. Upload-/Markerfehler werden an den Befehlsgrenzen injiziert, während Crypt-Übertragung und Inhaltsvergleich real bleiben. Die Tests bilden keine OneDrive-API nach; das tatsächliche HTTP-409-Wiederholungsverhalten ist durch den Betreiberlauf und den rclone-1.74.3-Quellcode separat belegt.