Diese Tools sind für mehr oder weniger diesen Anwendungsfall gedacht:
Prüfsumme und Überprüfung aller Dateien in einem Dateisystem
Ich möchte sha1sum oder md5sum für alle meine Dateien rekursiv ausführen, die Ergebnisse in einer Datei (oder ein paar Dateien) speichern und dann in der Lage sein, die Dateien erneut zu durchsuchen, um die Integrität der Dateien zu überprüfen.
Werkzeuge wie sha1sum / md5sum erlauben keine Rekursion, und ich möchte auch die Last verteilen, so dass mehr als ein CPU-Kern verwendet wird.
Ich fühle mich noch nicht sicher, meine Dateien auf BTRFS zu stellen, und außerdem funktioniert BTRFS auf raid5 / 6 noch nicht richtig. Daher suche ich nach einer "schnellen" Möglichkeit, alle meine Dateien zu überprüfen und sie zu überprüfen, wann immer ich möchte. Auf diese Weise würde ich zumindest wissen, ob eine unbeaufsichtigte Datenbeschädigung meine Dateien behindert hat.
Gibt es Werkzeuge, die für diesen Zweck entwickelt wurden (ja, mir ist SnapRAID bekannt)?
2 Antworten auf die Frage
Oder Sie könnten selbst etwas schreiben;) Ich habe dieses Skript in Python geschrieben und dabei andere Schnipsel aus dem Web zusammengeführt. Es kann ein Ausgangspunkt sein.
#! / usr / bin / python import os import hashlib von Joblib import Parallel, verzögert Import Json BASE_DIR = "/ home / p / music" NUM_PROC = 2 OUT_FILE = "hashes.json" # Liste der zu verarbeitenden Dateien file_list = [] für root, dir, Dateien in os.walk (BASE_DIR): für Namen in Dateien: file_list.append (os.path.join (root, name)) # - md5sum Berechnung für eine einzelne Datei def hashOne (f): BLOCKSIZE = 65536 hasher = hashlib.md5 () mit open (f, 'rb') als afile: drucken f buf = afile.read (BLOCKSIZE) während len (buf)> 0: hasher.update (buf) buf = afile.read (BLOCKSIZE) return hasher.hexdigest () # Parallele Berechnung von MD5sum md5 = parallel (n_jobs = NUM_PROC) (verzögert (HashOne) (f) für f in file_list) # Hash aus Dateinamen machen -> md5sum out_hash = {} für i in range (len (file_list)): out_hash [file_list [i]] = md5 [i] # Schreibe den Hash "Dateiname -> md5sum" auf die Festplatte für die Zukunft dump = json.dumps (out_hash) mit open (OUT_FILE, "wb") als Datei: file.write (dump)
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4