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 1089 korisnika na forumu :: 40 registrovanih, 6 sakrivenih i 1043 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: 357magnum, Areal84, babaroga, dane007, dankisha, Denaya, dolinalima, doloress, DonRumataEstorski, draganca, Gosha101980, Koridor, kubura91, ljuba, lord sir giga, mackenzie, mercedesamg, Miki01, mile23, milenko crazy north, Milometer, minmatar34957, nemkea71, novator, ObicanUser, pacika, perko91, Primus17, procesor, Sass Drake, sevenino, Sirius, Srle993, stankolich, uruk, vathra, Vendox, Wiesel092, Yellow Pinky, zastavnik