Ich beschäftige mich derzeit viel mit dem Thema Datensicherung und habe bisher alles von Hand gemacht. Das ist aber entweder eine Sisyphusaufgabe oder sehr belastend für die Datenträger (wenn man immer einfach alles neu kopiert).
Aktuell spiele ich mit RSYNC rum, bin mir aber noch uneins, was die vielen Optionen betrifft. Mir ist die dauerhafte Wahrung der Datenintegrität sehr wichtig und daher möchte ich Checksums einsetzen (also statt nur auf's Datum zu schauen, wird der gesamte Dateiinhalt auf Änderung überprüft, sodas nicht nur datumstechnisch geänderte Daten, sondern auch defekt gegangene Daten ersetzt werden), was das Arbeiten mit RSYNC aber verlangsamt.
Aktuell habe ich ein Script geschrieben, mit 2 Auswahlmöglichkeiten: "Schnelle Ersterstellung" des gesamten Backups und "langsames Update" also das spätere Einspielen von Veränderungen.
Wenn ich mit RSYNC das erste mal das Backup anlege, dann brauche ich keine SHA-Werte prüfen lassen, weil halt noch nix zum Abgleichen da ist. Genauso müssen keine temporären Daten erzeugt werden, sondern die Daten können direkt in den Backupordner geschrieben werden etc. "CP" möchte ich aber nicht verwenden, da bei einem Abbruch dieses immer komplett neu durchlaufen muss, im Gegensatz zu RSYNC, welches da weiter macht, wo es aufgehört hat. Das ist enorm wichtig, wenn man hunderte GB kopieren will. Die grafischen Dateiexplorer sind mir für so große Datenmengen zu instabil (z.B. Dolphin, den ich ansonsten sehr gerne verwende).
Ob ich "Hardlinks" (oder sonstwelche Links) brauche weiß ich nicht. Damit habe ich nie gearbeitet, Snapshots brauche ich erstmal nicht und die Backups sollen alle komplett für sich stehen. Platz habe ich genug.
Folgende zwei Scripte(Ausschnitte) teste ich derzeit (mit 300GB Daten am Stück, ca. 50.000 Dateien):
für die "schnelle" Ersterstellung:
1 2 3 4 5 6 | rsync -Wah \ --inplace \ --no-compress \ --stats \ --info=progress2 \ $ORIGINAL $BACKUP |
(nach Meinung mancher User, bewirkt --no-compress trotz fehlendem -z dennoch einen kleinen Geschwindigkeitsboost)
und dann später für die eigentlichen Änderungen am Backup:
1 2 3 4 5 6 7 | rsync -avbch \ --delete \ --progress \ --stats \ --backup-dir=$GELOESCHTEBACKUP \ --log-file=$LOGFILE \ $ORIGINAL $BACKUP |
Das untere Beispiel (was ich zuerst probiert habe) habe ich abbrechen müssen, weil es nach über 10 Stunden noch nicht fertig war. Dann habe ich weiter recherchiert und das obere erstellt, um das Allererste Schreiben des Backups zu beschleunigen. Es dauert dennoch 6,7 Stunden (12,7 MB/s, obwohl die USB3-HDD dauerhaft über 30 schafft). Ausserdem wurden laut Bericht 323 GB kopiert (23 GB Overhead?). Der kopierte Ordner ist aber am Ende tatsächlich (fast) gleich groß wie der Originale und beinhaltet exakt die gleiche Anzahl Dateien (also erstmal wie es sein soll). Ich hatte auch das Gefühl (beim Beobachten des Prozesses, wieviel MB/s gerade geschrieben werden) das es bis zu den ersten 60 GB immer langsamer wurde bei 150-200 völlig herumgekrebst ist (ca. 2MB/s) und dann ab ca. 220 wieder stark beschleunigte (ca .50MB/s). Beide Festplatten (interne NVME Quelle und externe Backup-HDD) sind in ext4 mit LUKS verschlüsselt.
Folgende Fragen habe ich:
- Wie erkenne ich, dass eine Datei nur ein Link ist?
- In meinen Backups gibt es viele doppelte Daten (selbe SHA-Summe, mal mit exakt gleichen, mal mit unterschiedlichen Dateinamen). Diese sollen auch doppelt bleiben und nicht durch Links ersetzt werden. (die meisten sortiere ich später per fdupes manuell aus, manche sollen bleiben).
- mir ist aufgefallen dass sehr viele Optionen garnicht in der MAN-Page erwähnt werden (z.b. "-version" und ein par die ich verwende, die aber eindeutig funktionieren). Wo findet man alle Befehle und deren Bedeutung? Ist die Man-Page so schlecht gepflegt oder was ist der Hintergrund?
- wo seht ihr Verbesserungen in der Auswahl an Optionen in meinem Fall?