Püfsummendatei erstellen

Rund um die Sicherheit des Systems und die Applikationen
Post Reply
dslthomas
Posts: 36
Joined: 2006-01-02 09:18
 

Püfsummendatei erstellen

Post by dslthomas »

Hallo,

ich möchte eine Prüfsummendatei erstellen. Mit folgendem Befehl:

Code: Select all

find /home/www/web32/html -type f | xargs md5sum > checkfile.txt
erhalte ich eine Ausgabe in folgendem Format:

Code: Select all

3f8d7a528f8b7d3da80071bd446c4e54  /home/www/web32/html/globals.php
ich benötige aber folgende Ausgabe:

Code: Select all

administrator/backups/index.html	1c7b413c3fa39d0fed40556d2658ac73
also genau anders herum - erst Pfad dann Prüfsumme

wie kann das bewerkstelligen? Geht das überhaupt?

Danke
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim
 

Re: Püfsummendatei erstellen

Post by oxygen »

Code: Select all

| awk '{print $2, $1}'
funktioniert aber nur, wenn die Dateinamen keine Leerzeichen enthalten. Sonst wirds kompliziert.
dslthomas
Posts: 36
Joined: 2006-01-02 09:18
 

Re: Püfsummendatei erstellen

Post by dslthomas »

Danke! - Das wars!!!!! Super!
floogy
Posts: 150
Joined: 2007-10-23 22:00
 

Re: Püfsummendatei erstellen

Post by floogy »

Das sollte so funktionieren:

Code: Select all

find /home/www/web32/html -type f -print0| xargs -0 md5sum|gawk  '{print $2" "$NF"t"$1}' > checkfile.txt
Das kommt aber nicht ganz mit Leerzeichen klar. $2" "$NF"t"$1 ist da nur ne Krücke :( bei Leerzeichen in Dateinamen.

Code: Select all

$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" ... "$NF"t"$1
sieht auch blöd aus ...

EDIT:

So funktioniert's auch mit Leerzeichen in Dateinamen:

Code: Select all

find /home/www/web32/html -type f -print0| xargs -0 md5sum|gawk  -F / '{print "/"$NF"t"$1}' > checkfile.txt
"t" gegebenenfalls durch " " ersetzen.

Frage: Wie kann man das noch besser lösen? Leerzeichen am Ende einer Datei führen hier zu Problemen (ansonsten ja wohl auch u.U. ;-) ).
Last edited by floogy on 2007-11-24 16:42, edited 1 time in total.
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: Püfsummendatei erstellen

Post by Roger Wilco »

Code: Select all

find /home/www/web32/html -type f -exec perl -e 'use Digest::MD5;open(FILE, $ARGV[0]);$ctx = Digest::MD5->new; $ctx->addfile(*FILE);$digest = $ctx->hexdigest;print "${ARGV[0]}t${digest}n";' -- "{}" ;
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Püfsummendatei erstellen

Post by Joe User »

floogy wrote:Frage: Wie kann man das noch besser lösen? Lerzeichen am Ende einer Datei führen hier zu Problemen (ansonsten ja wohl auch u.U. ;-) ).
sed statt awk verwenden ;)
juergen
Posts: 133
Joined: 2004-03-30 14:44
Contact:
 

Re: Püfsummendatei erstellen

Post by juergen »

Mit dem Umschreiben des Files wirst du keinen Spaß haben: Wie willst du die checksummen wieder überprüfen? Dateinamen könnten auch andere lustige Zeichen (wie z.B. newline) enthalten.

md5sum kann zur überprüfung nur sein eigenes Fileformat lesen.
Post Reply