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

  

时间: 2024-08-26 15:17:31

python检测硬盘脚本的相关文章

老男孩教育每日一题-2017-04-17:使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警

老男孩教育每日一题-2017-04-17: 使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警. 今天是老男孩教育每日一题陪伴大家的第29天.

Python运维脚本整理

python检测指定端口状态 import socket sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM) sk.settimeout(1) for ip in range(0,254): try: sk.connect(("192.168.1."+str(ip),443)) print("192.168.1.%d server open \n"%ip) except Exception: print(&qu

python检测手机号码是否合法

1 !/usr/bin/python 2 #encoding:utf-8 3 #这是一个用来检测用户输入手机号码是否合法的小脚本. 4 5 def phonecheck(s): 6 #号码前缀,如果运营商启用新的号段,只需要在此列表将新的号段加上即可. 7 phoneprefix=['130','131','132','133','134','135','136','137','138','139','150','151','152','153','156','158','159','170',

python检测服务器是否ping通

好想在2014结束前再赶出个10篇博文来,~(>_<)~,不写博客真不是一个好兆头,至少说明对学习的欲望和对知识的研究都不是那么积极了,如果说这1天的时间我能赶出几篇精致的博文,你们信不信,哈哈,反正我是信了... python检测服务器是否ping通的2种方法 1.第一种比较挫,就是用ping,python调用shell,这个适用于较少的服务器数量,几百台已经很慢了(当然是说python同步的方法,要是nodejs异步方式还是很快的,但是nodejs CPU计算不行,所以尝试了下只能200台

python监测硬盘使用率

python获得磁盘剩余空间statvfs: >>> import os >>> import statvfs >>> vfs=os.statvfs("/home") >>> vfs (4096, 4096, 70959944, 70058799, 66396080, 73269248, 73234981, 73234981, 0, 255) >>> dir(statvfs) ['F_BAVAIL

Python 远程调用脚本之 RPC

最近有个监控需求,需要远程执行集群每个节点上的脚本,并获取脚本执行结果,为了安全起见不需要账号密码登陆主机,要求只需要调用远程脚本模块的方法就能实现. 总结下python进行远程调用脚本方法: 登陆主机执行脚本,python模块支持如 pssh.pexpect.paramiko 以远程方法调用(不需要登陆主机),python模块 rpyc,支持分布式 socket 方式,稍显复杂,需要熟悉网络协议,起点比较高 rpyc支持远程调用.分布式计算,以较少代码量实现需复杂socket编程,本文主要介绍

Python SVN 更新 脚本

#configs PROJECTS = { "away3d":"svn://svnurl/away3d", "Away3DUCtrl":"svn://svnurl/Away3DUCtrl", "Editor":"svn://svnurl/Editor", "EditorUI":"svn://svnurl/EditorUI", "Skill

python压缩文件脚本

zf.py文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 """ desc:读取配置文件config.ini压缩sourcepath路径到targetpath      并可以排除不需要压缩的文件excludefile time:2014/4/30 12:03:42 author:ggh """ import zipf

python注释、脚本参数、字节码

python注释.脚本参数.字节码 --道心 python安装 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键计算机]-->[属性]-->[高级系统设置]-->[高级]-->[环境变量]-->[在第二个内容框中找到 变量名为Path 的一行,双击] --> [Python安装目录追加到变值值中,用 : 分割] 如:原来的值;C:\python27,切记前面有分号