Verzeichnisse und Inhalte vergleichen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
gomez72
User
Beiträge: 72
Registriert: Sonntag 28. März 2021, 09:57

Hallo,

ich muss auf einem Storage immer wieder neu entstandene Verzeichnisse zippen und das original Verzeichniss danach löschen.
Ich muss zu 100% sicher gehen, dass bei den Dateioperationen kein Bit "verloren, gekippt" wird und muss das vorher und nacher miteinander vergleichen.
Soweit ich weiss sollte man das mit hash zum Beispiel md5sum pro File machen. Ein reines

Code: Alles auswählen

filecmp.dircmp(dir1, dir2)
reicht mir nicht aus.

Da es sich aber um recht große Verzeichnissstrukturen handelt muss ich da erstmal ziemlich viel drumherum bauen.
Kennt jemand vielleicht eine Bibliothek mit der mir das Verzeichniss/Subfolder hashen und vergleichen erleichtert werden kann ??

Habe auf erste Suche hin nichts gefunden.
LG Gomez
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@gomez72: Ich vermute da gibt es nichts fertiges, weil das ziemlich individuell ist was man da jetzt konkret als Bedingungen/Garantien haben/prüfen will um die 98% zu erreichen, denn 100% scheint mir sehr ambitioniert bis unmöglich.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
pillmuncher
User
Beiträge: 1530
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Warum erzeugst du nicht einfach zwei gleiche Zip-Dateien und vergleichst diese dann? Die Wahrscheinlichkeit, dass bei beiden dasselbe Bit umkippt ist doch recht gering.
In specifications, Murphy's Law supersedes Ohm's.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

@pillmuncher: sind alle Variablen wie Datei Reihenfolge und ggf Metadaten da kontrollierbar? Wenn die Verzeichnisse neu sind, dann sind die ja auch neuer im datum
gomez72
User
Beiträge: 72
Registriert: Sonntag 28. März 2021, 09:57

pillmuncher hat geschrieben: Freitag 17. Dezember 2021, 12:42 Warum erzeugst du nicht einfach zwei gleiche Zip-Dateien und vergleichst diese dann? Die Wahrscheinlichkeit, dass bei beiden dasselbe Bit umkippt ist doch recht gering.
ja das wäre eine Idee, allerdings sind die Ordner relativ fett > 1TB, also ist jede zusätzliche operation recht zeitintensiv.
Warum es nicht einfach einen Befehl gibt der einen ganzen Ordner mit allen Inhalten und unterordnern hashed :-(
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

So ein Befehl würde dir ja auch nicht helfen, denn du möchtest ja nicht zwei Verzeichnisse miteinander vergeleichen - sondern den Verzeichnisinhalt in einem Archiv + das reale Verzeichnis.

Dann musst du dir das eben selbst schreiben.
Dauern wird das sowieso ewig, denn du musst die 1TB ja wieder entpacken um herauszufinden, ob die enthaltenen Daten den Ursprungsdaten entsprechen.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

gomez72 hat geschrieben: Freitag 17. Dezember 2021, 13:20 ja das wäre eine Idee, allerdings sind die Ordner relativ fett > 1TB, also ist jede zusätzliche operation recht zeitintensiv.
Warum es nicht einfach einen Befehl gibt der einen ganzen Ordner mit allen Inhalten und unterordnern hashed :-(
Egal ob zippen oder hashen - in beiden Faellen wird jeder einzelne Block jeder einzelnen Datei eingelesen. Da gibt es keine Abkuerzung. Ein spezialisiertes Werkzeug ist wenn dann nur leicht besser, weil es sparsamer mit Speicher und besser mit den Caches der CPU umgeht, aber ob und wieviel muesste man messen. Und das setzt vorraus es gibt so ein Tool, mir ist keines bekannt.
Benutzeravatar
pillmuncher
User
Beiträge: 1530
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

__deets__ hat geschrieben: Freitag 17. Dezember 2021, 13:18 sind alle Variablen wie Datei Reihenfolge und ggf Metadaten da kontrollierbar? Wenn die Verzeichnisse neu sind, dann sind die ja auch neuer im datum
Das Problem mit dem Datum hat man ja immer. Auch wenn man den Inhalt einer Zip-Datei mit dem Inhalt der Festplatte selbst vergleicht. Und dass die Reihenfolge in beiden Zip-Files dieselbe ist, in der die einzelnen Dateien zum Zip-File hinzugefügt werden - dafür müsste man halt sorgen. Aber bei einer Größe von >1TB, d.h.10¹³ Bits, ist das alles wohl hinfällig. Denn selbst, wenn man den Inhalt des Zip-Files mit den Verzeichninssen und Dateien auf der Festplatte vergleichen wollte, müsste man diese Verzeichninsse und Dateien erst mal irgendwohin dekomprimieren, entweder auf eine hard disk, in den Hauptspeicher oder wohin auch immer. Und am Ende kann auch bei dem Zip-File nach seiner Erzeugung noch ein Bit umkippen, denn das liegt ja auch wieder auf irgendeinem Speichermedium, also Hardware, die für alles mögliche anfällig ist, von einem kaputten Kondensator bis hin zu Gammastrahlung von der Sonne.
In specifications, Murphy's Law supersedes Ohm's.
gomez72
User
Beiträge: 72
Registriert: Sonntag 28. März 2021, 09:57

__deets__ hat geschrieben: Freitag 17. Dezember 2021, 13:52
gomez72 hat geschrieben: Freitag 17. Dezember 2021, 13:20 ja das wäre eine Idee, allerdings sind die Ordner relativ fett > 1TB, also ist jede zusätzliche operation recht zeitintensiv.
Warum es nicht einfach einen Befehl gibt der einen ganzen Ordner mit allen Inhalten und unterordnern hashed :-(
Egal ob zippen oder hashen - in beiden Faellen wird jeder einzelne Block jeder einzelnen Datei eingelesen. Da gibt es keine Abkuerzung. Ein spezialisiertes Werkzeug ist wenn dann nur leicht besser, weil es sparsamer mit Speicher und besser mit den Caches der CPU umgeht, aber ob und wieviel muesste man messen. Und das setzt vorraus es gibt so ein Tool, mir ist keines bekannt.
da gibt es zum Beispiel Silverstack, das wird in der Medienbranche benutzt um Medienarchive sicher zu kopieren, das kann ich indem Fall aber nicht einbinden.
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@gomez72: Silverstack führt einen ja mehr oder weniger über MHL-Dateien direkt zu einer Bibliothek + Python-Programm für's hashen: https://github.com/ascmitc/mhl
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
gomez72
User
Beiträge: 72
Registriert: Sonntag 28. März 2021, 09:57

__blackjack__ hat geschrieben: Freitag 17. Dezember 2021, 15:25 @gomez72: Silverstack führt einen ja mehr oder weniger über MHL-Dateien direkt zu einer Bibliothek + Python-Programm für's hashen: https://github.com/ascmitc/mhl
Das ist sehr interessant ! Das ziehe ich mir rein.!
Danke für den Tipp
Antworten