effizienteste und sicherste Möglichkeit, ein vollständiges differentielles Backup mit rsync durchzuführen

effizienteste und sicherste Möglichkeit, ein vollständiges differentielles Backup mit rsync durchzuführen

Ich habe im Internet nach einer Möglichkeit gesucht, ein vollständiges Backup meines Linux-Rechners (kein Server) zu erstellen und alles jederzeit wiederherzustellen.

Ich begann mit dem am häufigsten verlinkten Leitfaden in jedem Thread.http://www.mikerubel.org/computers/rsync_snapshots/index.htmlund ich dachte, dass diese Art der Sicherung eine inkrementelle Sicherung war, nach einem weiteren Tag der Recherche fand ich Was ist der Unterschied zwischen differenzieller und inkrementeller Sicherung in Bezug auf den Rsync-Befehl?und andere Diskussionen, aber ich bin nicht sicher, was ich wirklich tue.

Nach der Anleitung und den Beiträgen habe ich beschlossen, es mit einem einzelnen Ordner (vor dem Sichern des gesamten Systems) namens source zu versuchen

rsync -av --delete /home/user/source /home/user/backup/backup0/

dann habe ich einige Dateien hinzugefügt und entfernt und das Backup noch dreimal durchgeführt

rsync -avH --delete --link-dest=/home/user/backup/backup0 /home/user/source /home/user/backup/backup1 

rsync -avH --delete --link-dest=/home/user/backup/backup1 /home/user/source /home/user/backup/backup2

rsync -avH --delete --link-dest=/home/user/backup/backup2 /home/user/source /home/user/backup/backup3

Ich dachte, dass ich mit dieser Art von Backup etwa Folgendes erhalten würde:

backup0-->backup1-->backup2-->backup3

Wenn ich also den Inhalt von „backup3“ wiederherstellen wollte, waren die Dateien #1 und #2 erforderlich, aber ich habe sie gelöscht und dann das Backup3 wiederhergestellt, und alles war wieder an seinem Platz. Also habe ich

user@user:/backup$ du -sh *
450M    backup0
620K    backup1
624K    backup2
628K    backup3

Es sieht aus wie ein differentielles Backup, nicht wie ein inkrementelles, aber ich dachte, dass ich für ein differentielles Backup bei jedem Backup Folgendes einstellen müsste: --link-dest=/home/user/backup/backup0

Meine Frage ist: Habe ich da einen Fehler gemacht? Gibt es eine bessere Möglichkeit, ein komplettes System mit rsync zu sichern?

PS: Das Zielgerät wird ein externes Laufwerk mit demselben Dateisystem sein.

Antwort1

Mit Hardlinks kann man mehrere Kopien einer Datei speichern und es wird nur der Speicherplatz einer Kopie belegt. Sie sehen, dass duder Speicherplatz, der von mehreren Hardlinks auf dieselbe Datei belegt wird, nicht doppelt gezählt werden darf.

Wenn Sie Folgendes ausführen würden:

du -sh backup3

Sie werden feststellen, dass Backup3 etwa 450 MB belegt. Wenn Sie Folgendes ausführen:

du -sh backup2 backup3

Sie würden feststellen, dass Backup2 etwa 450 MB belegt, während Backup3 sehr wenig belegt. Das liegt daran, dass duBackup2 zuerst durchgesehen und dessen Speicherplatz gezählt wurde. Als Backup3 durchgesehen wurde, zählte es nur den neu genutzten Speicherplatz und nicht die Hardlinks zu Dateien, die bereits in Backup2 gezählt wurden.

Jedes Backup ist vollständig und enthält alles, was Sie für eine vollständige Wiederherstellung benötigen. Da die Dateien jedoch fest verknüpft sind, wird insgesamt viel weniger Speicherplatz benötigt.

Beispiel

Ich habe eine 1,2 MB große Datei im Verzeichnis abgelegt src/. Lassen Sie uns zwei Backups erstellen:

$ rsync -a src backup1
$ rsync -a --link-dest=../backup1 src backup2

Mal sehen, wie groß Backup2 ist:

$ du -sh backup2
1.2M    backup2

Backup2 hat 1,2 Megabyte. Sehen wir uns nun an, wie groß Backup1 und Backup2 sind:

$ du -sh backup1 backup2
1.2M    backup1
8.0K    backup2

Nun scheint Backup2 nur 8 KB groß zu sein. Das liegt daran, dass die Hardlinks nicht doppelt gezählt werden.

Antwort2

Hardlinks sind die beste Möglichkeit, Speicherplatz zu sparen. Anstatt mit rsync zu skripten, verwende ich einen Wrapper, der diese Aufgabe übernimmt:Butterfly-Backup.

Dieser Wrapper verwendet reines rsync und verwandelt rsync in ein echtes Backup-/Wiederherstellungstool (es verfügt auch über Archivierungs-/Exportmodi).

Außerdem gibt es in den Optionen die --mode/-mOption, mit der Sie den Backup-Modus auswählen können zwischenInkrementelloderDifferential.

Im Differenzialmodus wird das erste vollständige Backup gespeichert und alle folgenden Backups werden dann daran angeschlossen, wodurch dank Hardlinks viel Platz gespart wird.

Ein Beispiel:

$ bb backup --computer mypc --destination /backup --data User --type Unix
 --mode Differential

verwandte Informationen