Ich habe festgestellt, dass der ursprüngliche Beitrag ziemlich alt ist. Ich denke jedoch, dass diese Informationen für diejenigen, die nach einer Lösung suchen, um zu überprüfen, ob die Dateien korrekt kopiert wurden, immer noch wertvoll sein können. Rsync ist möglicherweise die beste Methode zum Kopieren von Daten. Die in diesem Thread angegebenen Antworten sind gut. Für diejenigen, die noch keine Erfahrung mit Linux haben, werde ich versuchen, eine detailliertere Erklärung zu geben.
Szenario: Sie haben gerade Daten von einer Festplatte auf eine andere kopiert, mit vielen Unterverzeichnissen und Dateien. Sie möchten überprüfen, ob alle Daten korrekt kopiert wurden.
Überprüfen Sie zunächst, ob md5deep installiert ist, indem Sie den Befehl ausgeben md5deep -v
.
Wenn Sie die Meldung "Befehl nicht gefunden" erhalten, installieren Sie md5deep by apt-get install md5deep
.
Es wird davon ausgegangen, dass Sie nur mit regulären Dateien arbeiten möchten. Wenn Sie sich mit anderen Dateitypen befassen möchten, lesen Sie das Flag -o im Handbuch md5deep. ( man md5deep
)
Jetzt können Sie loslegen, und wir gehen davon aus, dass Sie Dateien von /mnt/orginal
nach kopiert /mnt/backup
haben. Ersetzen Sie diese durch die von Ihnen verwendeten Verzeichnisse.
Wechseln Sie zuerst in das Quellverzeichnis. Dies ist die Originalquelle für die Dateien, die Sie kopiert oder gesichert haben:
cd /mnt/orginal
Machen Sie dann eine Prüfsumme für jede Datei:
md5deep -rel -o f . >> /tmp/checksums.md5
Dieser Befehl erklärte:
-r
aktiviert den rekursiven Modus
-e
Zeigt die Fortschrittsanzeige an
-l
aktiviert relative Dateipfade.
-o f
Arbeiten Sie nur mit normalen Dateien (blockieren Sie keine Geräte, Named Pipes usw.)
.
Weist md5deep an, im aktuellen Verzeichnis zu starten.
>> /tmp/checksums.md5
Weist md5deep an, alle Ausgaben an umzuleiten /tmp/checksums.md5
.
Hinweis: Wenn Sie Inhalte in früheren Versionen von überschreiben möchten /tmp/checksums.md5
, verwenden Sie >
und nicht>>
Beachten Sie, dass dieser Befehl abhängig von der Geschwindigkeit und der Größe der Daten eine Weile dauern kann. Sie könnten mit nice und / oder ionice experimentieren, um die Leistung von md5deep zu steigern, aber das liegt außerhalb des Rahmens dieser Antwort.
Wenn die Erstellung der Prüfsummen abgeschlossen ist, haben Sie jetzt eine Datei mit Einträgen ähnlich den folgenden:
69c0a826b29c8f40b7ca5e56e53d7f83 ./oldconfig-11-09-2013/etc2/apm/event.d/20hdparm 651f3c7f79a14332f9fa7bb368039210 ./oldconfig-11-09-2013/etc2/apm/4 /etc2/apm/scripts.d/alsa e9b9131660a8013983bc5e19d7d669eb ./oldconfig-11-09-2013/etc2/ld.so.cache
Die erste Spalte ist die md5-Prüfsumme und die zweite Spalte ist der relative Pfad zu der Datei, zu der die Prüfsumme gehört.
Wenn Sie sehen möchten, wie viele Dateien in der Prüfsummendatei vorhanden sind, geben Sie den folgenden Befehl ein:
wc /tmp/checksums.md5 -l
Nun möchten Sie überprüfen, ob die kopierten Daten korrekt sind:
cd /mnt/backup
md5deep -o f -reX /tmp/checksums.md5 . >> /tmp/compare.result
Der einzige Unterschied zu dem Zeitpunkt, an dem wir die Prüfsummen erstellt haben, ist -X, das den aktuellen Hash einer Datei anzeigt, wenn der Eintrag in der Dateiprüfsummen.md5 nicht übereinstimmt. Wenn am Ende des Tests /tmp/compare.result
leer ist, können Sie darauf vertrauen, dass alle Dateien korrekt kopiert werden, da die Prüfsummen übereinstimmen.
Beachten Sie, dass nur in der /tmp/checksums.md5
Datei aufgeführte Dateien auf eine korrekte Prüfsumme überprüft werden. Wenn sich zusätzliche Dateien im /mnt/backup
Verzeichnis befinden, werden Sie von md5deep nicht darüber informiert.
Anmerkungen:
Sie müssen nicht unbedingt die Umleitung verwenden, um Ausgabedateien zu speichern. Weitere Informationen finden Sie im md5deep-Handbuch.
Abhängig von den Berechtigungen der Dateien, die Sie verarbeiten, müssen Sie möglicherweise md5deep-Befehle als root ausführen.
sudo apt-get install md5deep
md5deep -rel /path/to/your/directory/ > directory_hash.md5
md5deep -X directory_hash.md5 -r /path/to/your/second/direcotory
Vielen Dank.