码迷,mamicode.com
首页 > 编程语言 > 详细

python检测硬盘脚本

时间:2017-07-10 13:30:40      阅读:380      评论:0      收藏:0      [点我收藏+]

标签:python   err   ati   int   orm   main   ror   sorry   dev   

#!/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()

  

python检测硬盘脚本

标签:python   err   ati   int   orm   main   ror   sorry   dev   

原文地址:http://www.cnblogs.com/uglyliu/p/7145207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!