mr_kaktus Geschrieben 19. Februar 2007 Teilen Geschrieben 19. Februar 2007 Hi@ll, weiß jemand, wie ich mit Perl, die Checksumme einer gepackten *.gz Datei bekommen kann? Außerdem kann mir jemand sagen, warum, wenn zwei Identische Datein, mit gzip gepackt werden, nicht mehr die gleiche Checksumme haben? Ich hab eine Datei "A" kopiere diese mit cp nach "B" erstelle eine Checksumme der beiden Dateien und Sie ist gleich. Wenn ich die Datei "A" nach "A.gz" und die Datei "B" nach "B.gz" packe, dann stimmen die Checksummen nicht mehrüberein?! Kann mir das mal jemand erklären? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jan Jansen Geschrieben 19. Februar 2007 Teilen Geschrieben 19. Februar 2007 Mutmaßlich arbeitet gzip nicht deterministisch, sprich für ein und die selbe Ursprungsdatei gibt es mehrere mögliche .gz Ergebnisse Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mr_kaktus Geschrieben 19. Februar 2007 Autor Teilen Geschrieben 19. Februar 2007 Und wie kann ich jetzt eine Checksumme der Dateien ziehen? Geht das überhaupt, oder muss ich dafür die Datei erst mal entpacken, testen und dann wieder Packen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jan Jansen Geschrieben 19. Februar 2007 Teilen Geschrieben 19. Februar 2007 bilde die Checksumme der beiden entpackten Dateien oder übertrage/kopiere die gzip Datei und bilde die Checksumme der beiden gzip Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 19. Februar 2007 Teilen Geschrieben 19. Februar 2007 In Perl gibt's zwei Möglichkeiten: Systemaufruf von z.B. md5sumModul benutzen, z.B. Digest::MD5::File (Digest::MD5::File - Perl extension for getting MD5 sums for files and urls. - search.cpan.org) Das mit den verschiedenen Archiven könnte auch an der Access/Modify/Change-Time der Dateien liegen. Ich meinte, dass gzip diese mitsichert. Und dann ist klar, dass bei zwei Sicherunge verschieden ATimes vorliegen was zu zwei verschiedenen Archiven führt. Könnte daran liegen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 19. Februar 2007 Teilen Geschrieben 19. Februar 2007 Die Archive müssen doch auch die Dateinamen mitspeichern. Also dürften die meines Erachtens nicht die selben Checksummen haben, auch wenn die gepackten Dateien identischen Inhalt haben - nach meiner Logik. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 19. Februar 2007 Teilen Geschrieben 19. Februar 2007 Die Archive müssen doch auch die Dateinamen mitspeichern. Also dürften die meines Erachtens nicht die selben Checksummen haben, auch wenn die gepackten Dateien identischen Inhalt haben - nach meiner Logik. Prinzipiell stimmt das - nur kann gzip nur eine Datei komprimieren... Der Name der Datei ist somit der Archivname nur halt ohne .gz. Um mehrere Daten mit gzip zusammenzufassen wird in der Regel tar benutzt... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mr_kaktus Geschrieben 19. Februar 2007 Autor Teilen Geschrieben 19. Februar 2007 Ich hab mir mal die Funktion angeschaut. Verstehe ich das jetzt richtig, ich hab keine Möglichkeit, die gepackten dateien zu vergleichen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whatever Geschrieben 21. Februar 2007 Teilen Geschrieben 21. Februar 2007 x:~$ mkdir dir1 x:~$ mkdir dir2 x:~$ cp testfile dir1/ x:~$ cp testfile dir2/ x:~$ md5sum dir1/testfile b264734c0f7291ff69753b3ebe9d3e46 dir1/testfile x:~$ md5sum dir2/testfile b264734c0f7291ff69753b3ebe9d3e46 dir2/testfile x:~$ gzip dir1/testfile x:~$ gzip dir2/testfile x:~$ md5sum dir1/testfile.gz e2bf30864b9ff47f8247f82fc8dbde7c dir1/testfile.gz x:~$ md5sum dir2/testfile.gz c317edd4f4a55cd0ca795242fc4aa881 dir2/testfile.gz Hm, stimmt. Vermutung: Der Ursprungspfad wird mit in der Gzip gespeichert. Tauschen wir mal die beiden Dateien, dann müssten die Checksummen gleich bleiben aber die Summe aus dir1 müsste bei dir2 stehen: x:~$ gzip -d dir1/testfile.gz x:~$ gzip -d dir2/testfile.gz x:~$ mv dir1/testfile dir2/testfile_from_d1 x:~$ mv dir2/testfile dir1/ x:~$ mv dir2/testfile_from_d1 dir2/testfile x:~$ gzip dir1/testfile x:~$ gzip dir2/testfile x:~$ md5sum dir1/testfile.gz c317edd4f4a55cd0ca795242fc4aa881 dir1/testfile.gz x:~$ md5sum dir2/testfile.gz e2bf30864b9ff47f8247f82fc8dbde7c dir2/testfile.gz Tadaaaa. Das Rätsel ist gelöst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mr_kaktus Geschrieben 21. Februar 2007 Autor Teilen Geschrieben 21. Februar 2007 Hm, stimmt. Vermutung: Der Ursprungspfad wird mit in der Gzip gespeichert. Tauschen wir mal die beiden Dateien, dann müssten die Checksummen gleich bleiben aber die Summe aus dir1 müsste bei dir2 stehen: x:~$ gzip -d dir1/testfile.gz x:~$ gzip -d dir2/testfile.gz x:~$ mv dir1/testfile dir2/testfile_from_d1 x:~$ mv dir2/testfile dir1/ x:~$ mv dir2/testfile_from_d1 dir2/testfile x:~$ gzip dir1/testfile x:~$ gzip dir2/testfile x:~$ md5sum dir1/testfile.gz c317edd4f4a55cd0ca795242fc4aa881 dir1/testfile.gz x:~$ md5sum dir2/testfile.gz e2bf30864b9ff47f8247f82fc8dbde7c dir2/testfile.gz Tadaaaa. Das Rätsel ist gelöst. Höm, was ist wenn ich jetzt aber eine Datei packe, sagen wir in /dir1/testfile1.gz und diese datei packe ich dann noch mal im /dir1/testfile2.gz, dann haben sie ja nicht die gleiche Checksumme. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whatever Geschrieben 21. Februar 2007 Teilen Geschrieben 21. Februar 2007 Nein. Weil gzip offenbar den vollen Ursprungspfad mit speichert. Der dürfte mutmaßlich in den Metadaten irgendwo stehen, damit also auch in der Datei. Und damit hat die eine andere Checksumme Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mr_kaktus Geschrieben 21. Februar 2007 Autor Teilen Geschrieben 21. Februar 2007 Aber wenn die Pfade gleich sind, dann müssten doch die checksummen gleich sein??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mr_kaktus Geschrieben 22. Februar 2007 Autor Teilen Geschrieben 22. Februar 2007 Hallo, ich habs jetzt endlich, wenn ich die Dateien mit der Option -n sichere, dann funkt das mit dem Vergleich der Dateien:gzip -help gzip 1.3.5 (2002-09-30) usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...] [....] -n --no-name do not save or restore the original name and time stamp [....] gzip -n mysqldump_070221 mysqldump_070222 md5sum mysqldump_070221.gz mysqldump_070222.gz cb652b435fca233b291951f330b24a16 mysqldump_070221.gz cb652b435fca233b291951f330b24a16 mysqldump_070222.gz Ich hab aber immer noch nicht verstanden, wass er da jetzt nicht mitsichert?! Was meinen Sie mit dem Originalnamen? Der sieht doch beim unzip doch genau so aus?! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whatever Geschrieben 22. Februar 2007 Teilen Geschrieben 22. Februar 2007 Steht doch da. Den Orignalnamen und den Orginal-Timestamp. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mr_kaktus Geschrieben 22. Februar 2007 Autor Teilen Geschrieben 22. Februar 2007 Steht doch da. Den Orignalnamen und den Orginal-Timestamp. Das mit dem Timestamp verstehe ich, aber der Originalname? Der ist doch nach dem Entpacken gleich, was ändert sich jetzt daran? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.