#!/usr/bin/env python# _*_coding:utf-8_*_import osimport sysimport statvfsdef Main (): ' Deamon ' if ' Linux ' not in Sys.platform:print ' sorry! System Opreation not supply! ' Sys.exit (3) mount = [] result = [] label = [] status = 0 with open ('/proc/mounts ') as F:for V in F: v = v.split () Mountname = v[1] If v[0] in Mount:continue mou Nt.append (V[0]) TRY:VFS=OS.STATVFS (mountname) except Oserror:print ' Mounted Device error, plase check%s '% Mountname sys.exit (3) totalspace= Vfs[statvfs. F_blocks]*vfs[statvfs. f_bsize]/(1024*1024*1024) if totalspace = = 0:continue availspace= vfs[statvfs. F_bavail]*vfs[statvfs. f_bsize]/(1024*1024*1024) Availinode = Vfs[statvfs. F_ffree] Totalinode = Vfs[statvfs. F_files] Usedspace = Totalspace-availspace Usedinode = Totalinode-availinode Usedspaceper = float (usedspace)/totalspace * Usedinod Eper = float (usedinode)/totalinode * usedspacepercent = "{0:.0f}%". Format (usedspaceper) Usedinod Epercent = "{0:.0f}%". Format (usedinodeper) if Usedspaceper >= or Usedinodeper >= 90:st ATUs = 2 elif usedspaceper >= or usedinodeper >= 80:status = 1 info = '%s=% sgb,%s inode=%s; '% (mountname,availspace,usedspacepercent,usedinodepercent) if info not in result: Result.append (Info) label.append ('%s=%s;%s;%s;0;%s '% (mountname,availspace,0,availspace*2,availspace* 4)) print ' Free space:%s|%s '% ('. Join (Result), '. Join (label)) sys.exit (status) if __name__ = = ' __main__ ': Main ()
Python detects hard disk scripts