Eine zu schnell gelöschte oder ersetzte Konfigurationsdatei kann einen Dienst in einen falschen Zustand versetzen. Mit Restic besteht die Falle darin, direkt auf dem aktiven Pfad wiederherzustellen. Stellen Sie zuerst die Datei in einem Testverzeichnis wieder her und vergleichen Sie sie, bevor Sie sie kopieren.
Die Methode basiert auf einem bereits initialisierten und mit den üblichen Anmeldeinformationen zugänglichen Repository. Sie zielt auf eine bestimmte Datei ab, zum Beispiel /etc/mein-dienst/config.ini, und lässt die aktuell verwendete Version intakt, solange die Überprüfung nicht abgeschlossen ist.

Snapshot identifizieren und den Pfad wiederherstellen
Definieren Sie das Repository mit denselben Variablen oder derselben Umgebungsdatei wie Ihre Sicherung. Vermeiden Sie es, das Passwort des Repositories in die Bash-Historie einzufügen. Wenn der Restic-Dienst bereits in einem Skript oder einer systemd-Einheit läuft, verwenden Sie dessen Authentifizierungsmechanismus, anstatt einen neuen für die Wiederherstellung zu erstellen.
Beginnen Sie damit, die Snapshots aufzulisten, die den gesuchten Pfad enthalten:
export RESTIC_REPOSITORY=/srv/restic-repo
restic snapshots --path /etc/mein-dienst/config.ini
Die Ausgabe zeigt die Identifikatoren, das Datum, den Host und die gesicherten Pfade an. Wählen Sie eine präzise Identifikation anstelle von latest, wenn mehrere Maschinen oder Sicherungen diese Datei enthalten können. In diesem Beispiel ersetzen Sie 8f3a1c2d durch die gewählte Identifikation.
SNAPSHOT=8f3a1c2d
restic ls "$SNAPSHOT" --path /etc/mein-dienst/config.ini
restic ls bestätigt den im Archiv vorhandenen Pfad, bevor etwas geschrieben wird. Wenn kein Ergebnis übereinstimmt, hören Sie hier auf. Ein falsch eingegebener Pfad oder ein Snapshot, der nach dem Vorfall erstellt wurde, wird durch eine zweite Wiederherstellung nicht repariert.
Wiederherstellen in ein Testverzeichnis
Erstellen Sie ein Verzeichnis, das für die Überprüfung reserviert ist. Es darf kein Produktions-Mount-Punkt oder das Verzeichnis des betreffenden Dienstes sein:
sudo install -d -m 0700 /srv/wiederherstellung-restic-test
restic restore "$SNAPSHOT"
--target /srv/wiederherstellung-restic-test
--include /etc/mein-dienst/config.ini
Restic stellt die Verzeichnisstruktur unter dem Ziel wieder her. Die wiederhergestellte Datei befindet sich also hier:
/srv/wiederherstellung-restic-test/etc/mein-dienst/config.ini
Dieses separate Verzeichnis verhindert, dass /etc/mein-dienst/config.ini während des Tests überschrieben wird. Diese Wahl sollte für eine Dienstdatei, einen Konfigurationsschlüssel oder eine exportierte Datenbank beibehalten werden. Eine direkte Wiederherstellung im Root-Verzeichnis verwandelt einen Snapshot-Fehler in einen Produktionsvorfall.
Die Datei vergleichen, bevor sie wieder in Betrieb genommen wird
Überprüfen Sie zunächst die Berechtigungen, die Größe und die Unterschiede. Der Befehl diff ändert keine Dateien:
sudo stat /etc/mein-dienst/config.ini
sudo stat /srv/wiederherstellung-restic-test/etc/mein-dienst/config.ini
sudo diff -u
/etc/mein-dienst/config.ini
/srv/wiederherstellung-restic-test/etc/mein-dienst/config.ini
Ein diff ohne Ausgabe gibt den Code 0 zurück: die beiden Inhalte sind identisch. Wenn Zeilen gelöscht oder hinzugefügt werden, lesen Sie sie, bevor Sie eine Entscheidung treffen. Eine alte Adresse, ein Port oder ein abgelaufenes Geheimnis könnte genau der Grund dafür sein, dass die Datei geändert wurde.
Wenn die wiederhergestellte Kopie die richtige ist, sichern Sie zuerst die aktive Version, bevor Sie sie in einem kurzen Wartungszeitraum ersetzen. Überprüfen Sie dann die Syntax und den Status des Dienstes mit den für Ihre Software geeigneten Befehlen, z.B. systemctl status mein-dienst und dem zugehörigen Protokoll.
Die Wiederherstellungskontrolle verdient die gleiche Sorgfalt wie eine Sicherung. Der BorgBackup -Leitfaden wendet dieselbe Logik mit einer produktionsexternen Extraktion an. Um einen Pfad zu finden, bevor Sie Restic starten, hilft der Befehl find unter Linux, zu verhindern, dass eine Datei mit demselben Namen am falschen Ort wiederhergestellt wird.
Wann man nicht eine einzelne Datei wiederherstellen sollte
Eine isolierte Datei reicht aus, um eine gelöschte Konfiguration oder eine überschreite Version zu ersetzen. Es reicht jedoch nicht immer für eine Anwendung, die ihren Zustand zwischen einer Datenbank, Dateien und einem Transaktionsprotokoll verteilt. In diesem Fall stellen Sie ein konsistentes Set in einer VM oder einem isolierten Verzeichnis wieder her und validieren Sie das Verfahren mit dem gestoppten Dienst oder einer Testkopie.
Die Restic-Dokumentation zur Wiederherstellung beschreibt das Targeting nach Snapshot, Pfad und Zielverzeichnis. Bewahren Sie das Testverzeichnis bis zur endgültigen Überprüfung auf. Das Löschen nach Validierung berührt weder das Restic-Repository noch die aktive Datei.