perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 20
Click for quality!




11.02.2012 / 23:19

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragChecksumme einer gepackten *.gz Datei?
Seitenanfang
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?

Datum: 19.02.2007-11:13

Beitragre: Checksumme einer gepackten *.gz Datei?
Seitenanfang
bla> md5sum --binary test.tar.gz
c192e8544905fe5ecb296131c474cc0a *test.tar.gz

Datum: 19.02.2007-21:27

Beitragre: Checksumme einer gepackten *.gz Datei?
Seitenanfang
o.g. Aufruf über systembefehl.
Ich meine der Dateiname geht in die Prüfsumme mit ein

Datum: 19.02.2007-21:30

Beitragre: Checksumme einer gepackten *.gz Datei?
Seitenanfang
Hi,

danke erst mal für deine Antwort, aber leider hat es nicht geklaptt :(

md5sum --binary mysqldump_*
bf553fae7f2c93c69d4e4df58bdeea3c *mysqldump_070219.gz
94eb5373eff3f379478cadccaec7197c *mysqldump_070220.gz

Es kommen weiterhin unterschiedliche checksummen raus. Wenn ich die zwei Dateien, unentpackt Vergleiche, dann stimmen die checksummen
md5sum --binary mysqldump_*
46182e7e6e3120a905e7d4eb893a7cb7 *mysqldump_070219
46182e7e6e3120a905e7d4eb893a7cb7 *mysqldump_070220

Also wird mir wahrscheinlich nichts anderes Übrigbleiben und die Checksummen der Unentpackten Dateien zu vergleichen oder?

Datum: 20.02.2007-09:14

Beitragre: Checksumme einer gepackten *.gz Datei?
Seitenanfang
gzip speichert zusaetzlich zu den Inhalten der Dateien auch deren originalen Dateinamen und den Zeitstempel. Aendert sich nicht der Inhalt aber der Zeitstempel der Datei, dann ist auch das Ergebnis, die komprimierte Datei, eine andere.

In folgenden Beispiel erzeuge ich eine Datei »testfile« mit den Inhalt »ABC«, die ich dann zweimal in unterschiedliche Dateien packe »testfile_A.gz« und »testfile_B.gz«.
Anschlieszend generiere ich fuer diese Dateien die MD5-Checksummen, die wie man sehen kann die Gleichen sind.

Im darauf folgenden Codeabschnitt arbeite ich mit den selben Dateien. Ich wende den touch-Befehl auf die Datei »testfile« an, damit aendert sich der Zeitstempel der Datei, jedoch nicht der Inhalt, was die MD5-Checksumme der Datei bestaetigt. Der stat-Befehl jedoch zeigt dass sich die Zeitstempel (Modify/Change) geaendert haben.
Das erneute Packen von »testfile« nach »testfile_B.gz« und das Vergleichen zeigt dass sich die gzip-Dateien nun unterscheiden.


prompt >echo "ABC" > testfile

prompt >md5sum testfile
6d0b865b7d33c81b43fabaf044a35f76 testfile

prompt >stat testfile
File: `testfile'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 305h/773d Inode: 65616 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/ user) Gid: ( 500/ user)
Access: 2007-02-22 02:17:25.000000000 +0100
Modify: 2007-02-22 02:17:23.000000000 +0100
Change: 2007-02-22 02:17:23.000000000 +0100

prompt >gzip -c testfile > testfile_A.gz

prompt >gzip -c testfile > testfile_B.gz

prompt >stat testfile
File: `testfile'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 305h/773d Inode: 65616 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/ user) Gid: ( 500/ user)
Access: 2007-02-22 02:17:41.000000000 +0100
Modify: 2007-02-22 02:17:23.000000000 +0100
Change: 2007-02-22 02:17:23.000000000 +0100

prompt >md5sum --binary testfile_?.gz
1346e0941a8373b093a5d1c2200fc83e *testfile_A.gz
1346e0941a8373b093a5d1c2200fc83e *testfile_B.gz


prompt >touch testfile

prompt >md5sum testfile
6d0b865b7d33c81b43fabaf044a35f76 testfile

prompt >stat testfile
File: `testfile'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 305h/773d Inode: 65616 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/ user) Gid: ( 500/ user)
Access: 2007-02-22 02:19:06.000000000 +0100
Modify: 2007-02-22 02:19:04.000000000 +0100
Change: 2007-02-22 02:19:04.000000000 +0100

prompt >gzip -c testfile > testfile_B.gz

prompt >md5sum --binary testfile_?.gz
1346e0941a8373b093a5d1c2200fc83e *testfile_A.gz
31778dc7673e1194cb87003e8c6dfb3a *testfile_B.gz

-- 3a2d275a5c68d91e376c562e86419f35

Datum: 22.02.2007-02:38

Beitragre: Checksumme einer gepackten *.gz Datei?
Seitenanfang
Wichtige Ergaenzung:

Du kannst auch gzip mit der Option »-n« bzw. »--noname« veranlassen, Informationen wie den Zeitstempel und den Originaldateinamen nicht mit zu speichern.
Du musst aber beachten, dass wenn ein Dateiname von gzip gekuerzt werden muss (weil es das Dateisystem erfordert) es den Originalnamen mit speichert, egal ob die Option gesetzt ist oder nicht.

Datum: 22.02.2007-03:02

Beitragre: Checksumme einer gepackten *.gz Datei?
Seitenanfang
SUPER!
Danke für die Hilfe, mit der Option -n Funkt es.
Aber ich hab immer noch nicht verstanden, was da gzip macht, wenn ich die Option -n benutze?
[quote]do not save or restore the original name and time stamp[/quote]
Heißt das, dass wenn ich die Datei entpacke ein neues Datum entsteht? Ich blick das nicht so ganz?

Datum: 22.02.2007-09:06

-






-
-