Add monthly offsite restore tests and automatic cleanup
This commit is contained in:
1 parent
64eab1d3c2
commit
f0c761213d
18 files changed
+1386
-16
No files matched your search
+23
-1
@@ -553,9 +553,31 @@ Die Entfernung der drei DB-Dateien aus dem aktuellen Baum löscht deren Historie
|
||||
|
||||
## Prüfung und Abnahme
|
||||
|
||||
### Monatliche automatisierte Restore-Probe
|
||||
|
||||
Die neue [Restore-Test-Betriebsanleitung](RESTORE_TEST.md) beschreibt den
|
||||
vollständigen Offsite-Test mit isoliertem MariaDB-Import. Ein neuer Scheduler
|
||||
verwendet die gemeinsame Backup-/Restore-/Update-Sperre. Archive werden einzeln
|
||||
geprüft und entpackt; komprimierte Eingaben werden vor DB-Imports entfernt.
|
||||
Temporäre Dateien und DB-Container werden bei Erfolg, Fehler und Abbruch
|
||||
bereinigt; systemd und eine Boot-Einheit übernehmen die Nachbereinigung.
|
||||
|
||||
Die Defaults von 4 GiB Arbeitsbudget und 2 GiB freier Reserve sind an den
|
||||
tatsächlichen Platz und die größte Komponente anzupassen. Die Überwachung ist
|
||||
keine harte Dateisystemquote. Ein nicht passender Sicherungssatz führt zu FAIL,
|
||||
nicht zu einer unbemerkten Teilprüfung. Protokolle und Berichte bleiben klein;
|
||||
ein vorab bereitgestelltes DB-Image bleibt als Abhängigkeit installiert.
|
||||
|
||||
Der Test ergänzt die bisherige technische Archivprüfung um tatsächliches
|
||||
Entpacken und DB-Import mit Tabellenprüfung. Fachliche Anwendungswiederherstellung
|
||||
auf einer isolierten VM und unabhängige Überwachung des letzten Erfolgs bleiben
|
||||
separate Abnahmen. Aktivierung und Prüfung auf Gemini erfolgen nach Installation.
|
||||
|
||||
### Entwicklungstests
|
||||
|
||||
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 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.
|
||||
Verifikation am 12.09.2026: **Standardlauf erfolgreich** (81 Fälle, davon 80 erfolgreich und ein separater Docker-Test planmäßig übersprungen; 704,8 Sekunden). Zusätzlich bestanden alle **19 gezielten Restore-Tests** mit echten DB-Containern und der Paketupdate-/Rollback-Test mit aktiviertem Restore-Timer. Die gezielten Tests prüfen insbesondere Platzgrenzen, ungültiges SQL, SIGTERM, SIGKILL, defekte Statusdateien, einen unerreichbaren Docker-Daemon und anschließende vollständige Bereinigung. Shell-Syntax, ShellCheck und systemd-Unit-Prüfung ohne Befund. Basis-Testumgebung: Debian 13.6, MariaDB 11.8.6, rclone 1.60.1-DEV und ShellCheck 0.10.0. Test-Mails werden nur lokal erfasst. Die tatsächliche Rocky-/OneDrive-/MTA-Abnahme des neuen Monatslaufs auf Gemini steht nach Installation noch aus.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Reference in new issue
Block a user