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()

  

转载于:https://www.cnblogs.com/uglyliu/p/7145207.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值