#!/usr/bin/python import os, dircache, statvfs, time root="/var/mogdata" mtab = {} for l in open("/etc/mtab").readlines(): vals = l.split(' ') mtab[vals[1]] = vals[0] for dev in dircache.listdir(root): name = root + "/" + dev s = os.statvfs(name) bs = s[statvfs.F_BSIZE] mul = float(bs) / 1024.0 avail_to_root = long(s[statvfs.F_BFREE] * mul) avail = long(s[statvfs.F_BAVAIL] * mul) total = long(s[statvfs.F_BLOCKS] * mul) used = total-avail_to_root # use df's own weird 'used percentage' routine u100 = used * 100 nonroot_total = used + avail pct = u100 / nonroot_total + (u100 % nonroot_total != 0) tmpusage = name + "/usage.tmp" outf = open(tmpusage, "w") print >>outf,"available:", avail print >>outf,"device:",mtab[name] print >>outf,"disk:",name print >>outf,"time:",long(time.time()) print >>outf,"total:",total print >>outf,"use: %d%%" % (pct) print >>outf,"used:",used outf.close() usage = name + "/usage" os.system("mv %s %s" % (tmpusage, usage)) os.system("chmod a+r,ug+w %s" % (usage))