md5check directories
July 12, 2008 Leave a comment
This is a python script that recursively md5sums all the files in your directory and compares it with another directory. It is similar, and probably less good than
find /dirone -type f -print0 | md5sum
but this was coded to check if the directory structure copied cleanly to a *windows* box. It seems to work ok. TODO: only read line by line if file is over a certain size, else read line by line like it does now.
#!/usr/bin/env python import os, sys, getopt from Crypto.Hash import MD5 from Crypto.Hash import SHA def usage(): print """ DESCRIPTION compares topdir1 to topdir2 using a hash algorithm USAGE hashsum.py -h prints this message hashsum.py topdir1 topdir2 [sha1|md5] """ def sumcont(hasharg, dirname, fnames): for file in fnames: try: myfile = open(os.path.join(dirname, file)) for i in myfile.readlines(): hasharg.update(i) myfile.close() except: pass print "*", if len(sys.argv) 3: if sys.argv[3].lower() == 'sha1': print "HASH ALGORITHM: sha1" md5_1 = SHA.new() md5_2 = SHA.new() else: print "HASH ALGORITHM: md5" else: print "HASH ALGORITHM: md5" os.path.walk(sys.argv[1], sumcont, md5_1) os.path.walk(sys.argv[2], sumcont, md5_2) print 'n' print 'First dir (',sys.argv[1],') hash : n', md5_1.hexdigest() print 'Second dir (',sys.argv[2],') hash : n', md5_1.hexdigest()