Datenintegrität vieler Files überprüfen

Shihatsu

Legende
Thread Starter
Mitglied seit
16.08.2005
Beiträge
5.634
Jo, ich bin gerade den letzten drehenden Rost in meiner Workstation losgeworden. Also wanderten zweistellige Terrabytes an Daten von einer Exos auf eine U.3. Das habe ich via rsync gemacht, hat ganz schön lange gedauert.
Wie würdet ihr nach dem Copy-Job die Datenintegrität sicherstellen? Ich arbeite gerade mit
Code:
diff -rq /Quellpartition /Zielpartition
aber vielleicht kennt ihr ja einen viel besseren Weg...
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Bei diff würde ich evtl. noch die Option "--binary" verwenden.

Bei großen Datenmengen (oder wenn die Daten auf unterschiedlichen Rechnern liegen) würde ich mich langsam rantasten. Zuerst würde ich die Größe vergleichen:
Code:
df -k
oder auch
Code:
du -sk /Quellpartition
du -sk /Zielpartition
Dann würde ich eine Liste der Dateinamen erstellen und vergleichen
Code:
cd /Quellpartition
find . | sort > /tmp/a
cd /Zielpartition
find . | sort > /tmp/b
diff /tmp/a /tmp/b
Dann würde ich vielleicht tatsächlich alles mit dem diff-Befehl vergleichen... Wenn es ein Dateisystem ist, auf dem auch extended attributes oder capabilities verwendet werden, würde ich prüfen, ob auch diese korrekt kopiert wurden.

Ich habe noch eine andere Methode. Beim Kopieren geht normalerweise wenig verloren (außer wenn man die falschen Parameter verwendet). Im Laufe der Zeit können Dateien aber gelöscht werden oder sie können sich ändern. Das möchte ich mitbekommen. Deshalb habe ich einen cron-job, der monatlich über mein Datenarchiv läuft und eine Textdatei mit allen Dateien und ihren checksums erstellt. Die Datei 2025.12.31-checksums-bilder.txt sieht z.B. so aus:
Code:
3290ec3c19a8a39362f7d70043f15627  ./Wallpaper/himmel-1024x768.jpg
9f1e9f7304a27cd8d35f15d1f8ea44bf  ./Wallpaper/himmel-1920x1200.jpg
...
3fa0eb00680610332c1213c3575eac9f  ./2018.07.21 Gartenparty/img_5512.jpg
d8719f86db29f1ea820e8bf04c41b020  ./2018.07.21 Gartenparty/img_5614.jpg
...
Weil ich diese Dateien sammle, kann ich sehr einfach und schnell prüfen, was sich im Archiv geändert hat. Beispiel: alle Änderungen seit März 2024:
Code:
diff 2024.03.31-checksums-bilder.txt 2025.12.31-checksums-bilder.txt
Ich würde nach dem Kopieren meinen cron-Job starten und eine neue Checksum-Datei erstellen lassen. Mit einem diff zur vorherigen Datei kann ich sehen, ob es Unterschiede gibt.
 
Zuletzt bearbeitet:
Erm... Das die Dateien alle da sind und die Größe gleich ist stellt rsync sicher. Was mir nicht klar war - aber ich durch die selbe Frage in einem anderen Forum gelernt habe - ist: rsync überprüft auch nach Kopie die Datenintegrität. Wenn man jetzt ganz sicher vor flipping sein will, kann man einen zweiten lauf mit dem zusätzlichen Schalte -c machen - für, tada!, check. Einfache Lösung.
 
rsync ist ein gutes und mächtiges Tool. Ich benutze es gerne, um Dateien übers Netzwerk zu kopieren. Für lokale Kopien verwende ich lieber cp oder tar.

Das Problem bei rsync sind die vielen Optionen, die es gibt. Man muss die richtigen Optionen auswählen - sonst geht es schief. Gerade für Anfänger und Gelegenheitsnutzer ist das schwierig.

Dateien kopieren ist übrigens gar nicht so einfach, weil es so viele Spezialfälle gibt:
  • hard links
  • soft links
  • Gerätedateien, UNIX Domain Sockets, FIFOs
  • Nicht-UTF8-Dateinamen
  • sparse files
  • extended attributes
  • ACLs
  • Dateien, die gerade von einem Programm zum Schreiben geöffnet sind und die nach dem Kopieren korrupt sind
  • Korrupte Dateien im Zielverzeichnis
Ein rsync-Befehl für das lokale Kopieren der Dateien einer Partition könnte sein (Quelle1, Quelle2):
Code:
rsync -axHAWXS --numeric-ids --info=progress2 Quellpfad Zielpfad
Aber selbst bei diesen Optionen sind noch nicht alle Spezialfälle enthalten...
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh