Linux-Kurs / tar-Backups erstellen und Wiederherstellung überprüfen

Kompression reduziert die Datengröße; eine Sicherung bewahrt eine wiederherstellbare Kopie von einem gewählten Zeitpunkt. Ein abgeschlossenes Archiv ist kein ausreichender Beweis für eine nutzbare Sicherung: stellen Sie es separat wieder her und überprüfen Sie Inhalte, Metadaten und die Fähigkeit der Anwendung, diese zu nutzen.

Stellen Sie zuerst eine manuelle Sicherung an einem separaten Ort wieder her und vergleichen Sie Inhalte und Berechtigungen. Automatisieren Sie dieses verifizierte Verfahren in geplanten Sicherungen und unabhängigen Zustandsprüfungen.

Unterscheiden Sie zwischen Kompression, Archivierung und Synchronisation

Vorgang Hauptzweck Wichtige Einschränkung
Archiv Dateien und Metadaten paketieren Metadatenanforderungen bestätigen und Berechtigungen wiederherstellen
Kompression Speichergröße reduzieren Impliziert keine Verschlüsselung oder eine separate Kopie
Synchronisation Aktuellen Quell- und Zielzustand angleichen Kann fehlerhafte Löschungen oder Änderungen weitergeben
Sicherung Einen früheren Zustand wiederherstellen Erfordert Aufbewahrung, separate Speicherung und Wiederherstellungstests

Ein zweites Verzeichnis auf derselben Festplatte kann bei einem versehentlichen Überschreiben helfen, kann aber mit der Festplatte verschwinden. Planen Sie unabhängigen Speicher, mehrere Wiederherstellungspunkte und Sicherungskopien, die sich mit kompromittierten Zugangsdaten des Produktionssystems nicht sofort ändern oder löschen lassen. Wenn Backups verschlüsselt werden, schützen Sie die Schlüssel getrennt und stellen Sie sicher, dass autorisiertes Wiederherstellungspersonal sie abrufen kann.

Bereiten Sie einen kleinen isolierten Quellbaum vor

lab=$(mktemp -d "$HOME/linux-backup-lab.XXXXXX")
mkdir -p "$lab/source/docs" "$lab/archives" "$lab/restore"
printf "version 1\n" > "$lab/source/docs/note.txt"
printf "enabled=yes\n" > "$lab/source/settings.conf"
chmod 600 "$lab/source/settings.conf"
find "$lab/source" -type f -print

Bestätigen Sie, dass sich die Quelle im neu erstellten temporären Verzeichnis befindet. Das Archiv wird außerhalb der Quelle aufbewahrt, um eine versehentliche Einbeziehung der Sicherung selbst zu vermeiden. Dieses Labor behandelt gewöhnliche Benutzerdaten; es überprüft nicht den Root-Besitz, Zugriffslisten, erweiterte Attribute oder die Konsistenz von Datenbanken.

Erstellen Sie ein Archiv mit relativen Mitgliedspfaden

tar -czf "$lab/archives/source.tar.gz" -C "$lab" source
tar -tzf "$lab/archives/source.tar.gz"
(cd "$lab/archives" && sha256sum source.tar.gz > source.tar.gz.sha256)
(cd "$lab/archives" && sha256sum -c source.tar.gz.sha256)

-c erstellt, -z wählt gzip aus, und -f benennt das Archiv. -C wählt ein Basisverzeichnis, sodass das Archiv source/... speichert anstatt absolute Pfade. Überprüfen Sie die beiden erwarteten Dateien und ein OK-Checksummenergebnis. Eine Prüfsumme erkennt eine Änderung im Verhältnis zum aufgezeichneten Digest; sie authentifiziert die Daten nicht gegen einen Angreifer, der beide Dateien ersetzen kann.

An einem anderen Ort wiederherstellen und das Ergebnis vergleichen

tar -xzf "$lab/archives/source.tar.gz" -C "$lab/restore"
diff -r "$lab/source" "$lab/restore/source"
stat -c "%a %n" "$lab/source/settings.conf" "$lab/restore/source/settings.conf"
cat "$lab/restore/source/docs/note.txt"

Ein stiller diff mit Status 0 zeigt übereinstimmende durchlaufene Inhalte an. Vergleichen Sie mit stat den Dateimodus 600 und prüfen Sie, dass die wiederhergestellte Datei version 1 enthält. Diff validiert nicht alle Eigentums-, ACL- oder erweiterten Attributanforderungen, daher benötigt eine Produktionswiederherstellung zusätzliche Metadatenprüfungen.

Ändern Sie die ursprüngliche Notiz zu version 2 und führen Sie diff erneut aus, um einen Unterschied zu beobachten. Das Archiv enthält immer noch Version 1, was den Unterschied zwischen Synchronisation und punktgenauer Wiederherstellung zeigt. Halten Sie die wiederhergestellte Kopie getrennt, während Sie diese überprüfen, anstatt das Original zu überschreiben.

Gehen Sie bewusst mit nicht vertrauenswürdigen Archiven und laufenden Diensten um

Untersuchen Sie ein unbekanntes Archiv, bevor Sie es als unprivilegierter Benutzer in ein frisches isoliertes Verzeichnis extrahieren. Überprüfen Sie unerwartete Pfade, symbolische Links, Anzahl und Größen. Extrahieren Sie es nicht als Root in den Systembaum. Das Auflisten eines Archivs bietet keine vollständige Sicherheitsgarantie, also halten Sie es von wichtigen Systemen getrennt.

Das Archivieren eines Live-Datenbankverzeichnisses kann inkonsistente Dateistände vermischen. Verwenden Sie das von der Datenbank unterstützte logische oder physische Sicherungsverfahren und die Konsistenzanforderungen, einschließlich Quiescing oder koordinierter Snapshots, wo zutreffend. Definieren Sie akzeptablen Datenverlust und Wiederherstellungszeit, und bewerten Sie diese dann durch eine tatsächliche Wiederherstellung.

Synchronisierungsvorschau, bevor sie angewendet wird

rsync -av --dry-run "$lab/source/" "$lab/restore/source/"

Mit installiertem rsync zeigt --dry-run Änderungen in der Vorschau an. Ein abschließender Schrägstrich am Quellverzeichnis bedeutet, dass dessen Inhalte und nicht das übergeordnete Verzeichnis gemeint sind. Dieses Beispiel lässt --delete weg, wodurch Dateien gelöscht werden können, die nur im Ziel vorhanden sind. Überprüfen Sie beide Pfade und behalten Sie unabhängige Wiederherstellungspunkte bei, bevor Sie die Synchronisierung anwenden.

Offizielle Referenzen