
Ich habe ein sehr einfaches Backup-Skript erstellt, rsync
das einige Ordner auf einem USB-Stick sichert. Dies ist nur für schnelle tägliche Backups gedacht.
Der Befehl lautet
rsync -av --delete
gefolgt von --exclude
Optionen und Pfaden.
Jetzt ist mir aber aufgefallen, dass das möglicherweise nicht sicher ist:
Was passiert, wenn meine Festplatte beschädigt wird und einige Dateien nicht mehr gelesen werden können? Werden rsync
die Dateien auf dem Stick gelöscht, wenn die Quelle nicht gelesen werden kann?
Oder allgemeiner: Gibt es ein anderes Szenario als „ich lösche die Dateien auf meiner Festplatte“, das zum Löschen der Dateien auf dem USB-Stick führt?
Antwort1
Erstens --delete
kann diese Option zu unerwünschten, zerstörerischen Ergebnissen führen, wenn Sie sich der Hintergründe nicht bewusst sind. Wenn beispielsweise die Quelle leer wird, werden alle vorhandenen Dateien am Ziel gelöscht, oder wenn einige Dateien aus der Quelle gelöscht werden, werden diese Dateien auch aus dem Ziel gelöscht.
Was passiert, wenn meine Festplatte beschädigt wird und einige Dateien nicht mehr gelesen werden können?
Wenn rsync
die Quelle nicht gelesen werden kann, wird eine Meldung angezeigt, dass der Zugriff verweigert wurde, und es werden keine weiteren Schritte unternommen. Ihre vorhandenen Dateien am Ziel sind also sicher.
Gibt es außer „ich lösche die Dateien auf meiner Festplatte“ ein anderes Szenario, das zum Löschen der Dateien auf dem USB-Stick führt?
Sofern Ihr USB-Gerät nicht selbst beschädigt wird, gibt es kein Szenario, in dem (Sie entfernen keine Dateien aus der Quelle, der Festplatte und) die vorhandenen Dateien auf dem USB-Gerät mit rsync
dieser --delete
Option gelöscht werden.
Prüfen:
% ls -1 source dest
dest:
source:
foo
% rsync -av --delete source/ dest
sending incremental file list
./
foo
sent 143 bytes received 38 bytes 362.00 bytes/sec
total size is 16 speedup is 0.09
% ls -1 source dest
dest:
foo
source:
foo
% chmod 000 source
% rsync -av --delete source/ dest
sending incremental file list
rsync: change_dir "/source" failed: Permission denied (13)
sent 20 bytes received 12 bytes 64.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]
% ls -1 source dest
dest:
foo
ls: cannot open directory source: Permission denied
Antwort2
Eine einfache Lösung für Probleme mit Beschädigungen und Löschungen ist die Verwendung eines geeigneten Sicherungsverfahrens. Wechseln Sie zwischen drei (oder mehr) USB-Sticks und verwenden Sie den ältesten „Backup“ als eingesteckten Stick, wenn Sie diesen Befehl einmal pro Woche ausführen. Auf diese Weise können Sie die Beschädigung wiederherstellen, wenn Sie sie entdecken, bevor Sie Ihre USB-Sticks durchlaufen. Dies wird als FIFO (First In, First Out) bezeichnet.
Es gibt andere, kompliziertere Schemata, die alle mit Ihrer Backup-Methode kompatibel sind. Eine Einführung zu einigen dieser Schemata finden Sie auf Wikipedia unter folgendem Link:
https://en.wikipedia.org/wiki/Backup_rotation_scheme