rsync über's netz und md5 Unterschiede

bsd4me

Well-Known Member
Hallo,
ich hab' da ne Frage: Zur Sicherung mache ich immer mal wieder ein "Backup" mittels rsync. Das klappt gut - aber bei einigen (grossen - ca. 1GB) Dateien entdecke ich Unterschiede in den md5 Checksummen, nachdem ich sie auf einen anderen Rechner gebracht habe. Wie kann das sein? Auf beiden Rechnern ist ein zfs die Datengrundlage, "mindestens" raidz1 - und ich sehe keine Plattenfehler. Hat jemand eine Idee woran das liegen könnte?
VG Norbert
 
rsync kopiert ja auch erstmal nur blöd hin- und her. Dabei kann es Fehler geben. Und beim erneuten Synchronisieren schaut rsync standardmäßig nur, ob das Datum identisch ist. Wenn Du sicherer sein willst - und mehr Zeit mitbringst - solltest Du die "-c" Option nutzen. Die vergleicht nicht einfach das Datum der Quell- und Zieldatei sondern auch die Checksum. Dann würde eine Abweichung einen erneuten Sync der beiden Dateien auslösen.
 
Hätte jetzt auch mal aufs Datum getippt. Schlimmer wäre es, wenn es Inkonsistenzen beim resume gab. Ich erinnere mich noch an FlashFXP unter Windows, da konnte man einstellen, wieviele Kb man beim resume 'zurückrollen' möchte, damit das bei einem Verbindungsabbruch verhindert wird.
Wichtig zu wissen wäre jetzt noch, ob und warum md5 aufs Datum reagiert.
 
danke für die Antworten :) ich denke ich lasse das erstmal so, wie es ist und prüfe immer mal wieder manuell die md5 Prüfsummen. Aber vielleicht fällt mir noch ein super "Algorithmus" dazu ein... Noch eine Frage: könnte es an der Netzverbindung liegen? teilweise wird mit weit über 80 MB/sec. "kopiert" - sogar etwa 100MB/sec. Also mal mit --bwlimit die Last heruntersetzen?
 
Hätte jetzt auch mal aufs Datum getippt.
Da hast Du mich falsch verstanden: Ich meine absolut nicht, dass ein anderes Datum zu einem anderen md5-Wert führt! Das kannst Du mit touch leicht mal selbst testen.

Was ich erklären wollte: rsync checkt beim (erneuten) Synchronisieren erstmal das Änderungs-Datum der beiden Dateien. Ist es (immer noch) identisch, geht rsync davon aus, dass sich nichts geändert hat und nichts neu synchronisert werden muss. Wurde die Datei zunächst fehlerhaft/unvollständig runtergeladen, würde dieser Fehler später nie auffallen, solange nur das Änderungsdatum identisch ist.

Nimmt man dagegen den "-c" Parameter mit rein, dann berechnet rsync auf beiden Seiten eine Checksum und schaut, ob diese identisch ist. Falls nicht, wird die Datei neu kopiert. Falls also mal eine Datei fehlerhaft gespeichert wurde, würde es beim erneuten Synchronisieren auffallen und die Datei erneut kopiert werden. Das ist also die fehler-tolerantere Version. Aber auch die rechen- und zeitintensivere.
 
nur am Rande: @holgerw nannte mal eine GUI zu rsync: net/grsync
das habe ich selbst noch nicht benutzt, aber es ist vielleicht einfacher, als die man-page zu lesen und sich seine Optionen mühsam zusammen zu suchen. Es hat dann auch die Möglichkeit, sich die rsync-Befehlszeile anzusehen und das, was man mittels Kontroll-Buttons eingestellt hat, auch nochmal zu sehen.
Vielleicht ist es auch nur verwirrend, weil da ja auch mit Übersetzungen gearbeitet wird. -c erhält man durch Auswahl von "Immer Prüfsummen erstellen", was man ja auch durchaus anders deuten könnte.
 
Zurück
Oben