• python检测硬盘脚本


    #!/usr/bin/env python
    # _*_coding:utf-8_*_
    
    import os
    import sys
    import statvfs
    
    def 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
                mount.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 * 100
                usedInodePer = float(usedInode)/totalInode * 100
                usedSpacePercent = "{0:.0f}%".format(usedSpacePer)
                usedInodePercent = "{0:.0f}%".format(usedInodePer)
                if usedSpacePer >= 90 or usedInodePer >= 90:
                    status = 2
                elif usedSpacePer >= 80 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()
    

      

  • 相关阅读:
    第十一周项目6-回文&素数(一)
    第十一周项目1-函数版星号图(三) .
    囚徒困境 For BBasic
    第十一周项目5-当年第几天
    第十一周项目4-特殊三位数
    第十一周项目3-程序的多文件组织
    第十一周项目2-求最大公约数
    第十一周项目1-函数版星号图(二)
    第十一周项目1-函数版星号图(一)
    第十周-囚徒困境
  • 原文地址:https://www.cnblogs.com/uglyliu/p/7145207.html
Copyright © 2020-2023  润新知