Skripta za proveru md5 hash-a na FreeBSD

Skripta za proveru md5 hash-a na FreeBSD

offline
  • soxxx 
  • Prijatelj foruma
  • Pridružio: 25 Maj 2005
  • Poruke: 1482
  • Gde živiš: Gracanica, Kosovo

Skoro sam imao potrebu da proverim md5 hash-eve nekih fajlova na NetBSD. Poceh nesto da se igram sa awk-om i onako uzgred pocnem da citam man stranicu za cksum(1), i naravno naidjem na "-c" opciju koja proverava md5 hash iz fajla. Zapravo opcija je ubacena od NetBSD 4.0 izdanja. Citajuci po netu nadjem da md5 iz FreeBSD nema tu opciju (OpenBSD cksum podrzava "-c" opciju). Tek instaliranjem md5sum (iz sysutils/coreutils) ta opcija je dostupna. Da ne duzim, evo koda koji nekome moze biti od koristi:
#!/bin/sh
# awk implementacija za: cksum -c MD5
        md5 "$1" | \
        awk '
         NR==FNR{
                a[$2]=$4
                next
        }
        ($2 in a){
                if(a[$2] == $4)
                        print "OK: " $2
                else
                        print "ERROR: " $2
        }' - "$2"

Primer; recimo da hocete da skinete FreeBSD iso fajl. U istom direktorijumu postoji i fajl CHECKSUM.MD5 koji sadrzi md5 hash-eve fajlova. Naravno kao pametan korisnik uvek proverite dali je fajl ispravan:
$ ftp ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.0/8.0-RELEASE-i386-disc1.iso
$ ftp ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.0/CHECKSUM.MD5
$ ls
8.0-RELEASE-i386-disc1.iso       CHECKSUM.MD5       md5_check.sh
$ ./md5_check.sh 8.0-RELEASE-i386-disc1.iso CHECKSUM.MD5
OK: (8.0-RELEASE-i386-disc1.iso)
$

Korisnije je kada imate mnogo vise od jednog fajla, recimo FreeBSD source:
$ ftp -V ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/8.0-RELEASE/src/
Trying 87.51.34.132...
ftp> get CHECKSUM.MD5
ftp> mget *.a*
mget sbase.aa [anpqy?]? a
Prompting off for duration of mget.
^C
ftp>
ftp> quit
$ ll
total 16930
drwxrwxrwt   2 soxxx   soxxx  -     360 Jan 16 23:52 ./
drwxr-xr-x  21 soxxx   soxxx  -     512 Jan 15 15:54 ../
-rw-r--r--   1 soxxx  soxxx  -    5758 Nov 21 17:07 CHECKSUM.MD5
-rwxrwxrwx   1 soxxx  soxxx  -     192 Jan 16 23:31 md5_hash.awk*
-rw-r--r--   1 soxxx  soxxx  -   75919 Nov 21 17:07 sbase.aa
-rw-r--r--   1 soxxx  soxxx  -  521808 Nov 21 17:07 sbin.aa
-rw-r--r--   1 soxxx  soxxx  -  976127 Nov 21 17:07 scddl.aa
-rw-r--r--   1 soxxx  soxxx  - 1425408 Nov 21 17:07 scontrib.aa
-rw-r--r--   1 soxxx  soxxx  - 1425408 Nov 21 17:07 scontrib.ab
-rw-r--r--   1 soxxx  soxxx  - 1425408 Nov 21 17:07 scontrib.ac
-rw-r--r--   1 soxxx  soxxx  - 1425408 Nov 21 17:07 scontrib.ad
-rw-r--r--   1 soxxx  soxxx  - 1425408 Nov 21 17:07 scontrib.ae
-rw-r--r--   1 soxxx  soxxx  - 1425408 Nov 21 17:07 scontrib.af
-rw-r--r--   1 soxxx  soxxx  - 1425408 Nov 21 17:07 scontrib.ag
-rw-r--r--   1 soxxx  soxxx  - 1425408 Nov 21 17:07 scontrib.ah
-rw-r--r--   1 soxxx  soxxx  - 1425408 Nov 21 17:07 scontrib.ai
-rw-r--r--   1 soxxx  soxxx  - 1425408 Nov 21 17:07 scontrib.aj
-rw-r--r--   1 soxxx  soxxx  - 1425408 Nov 21 17:07 scontrib.ak
-rw-r--r--   1 soxxx  wheel  -       0 Jan 16 23:51 scontrib.al
-rw-r--r--   1 soxxx  wheel  -   55920 Jan 16 23:51 scontrib.am

$ ./md5_hash.awk "s*" CHECKSUM.MD5
OK: (sbase.aa)
OK: (sbin.aa)
OK: (scddl.aa)
OK: (scontrib.aa)
OK: (scontrib.ab)
OK: (scontrib.ac)
OK: (scontrib.ad)
OK: (scontrib.ae)
OK: (scontrib.af)
OK: (scontrib.ag)
OK: (scontrib.ah)
OK: (scontrib.ai)
OK: (scontrib.aj)
OK: (scontrib.ak)
ERROR: (scontrib.al)
ERROR: (scontrib.am)
$



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
Ko je trenutno na forumu
 

Ukupno su 769 korisnika na forumu :: 6 registrovanih, 2 sakrivenih i 761 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Rade, Centauro, hyla, Leonov, Marko Marković, Rogan33