#!/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检测硬盘脚本的更多相关文章

  1. Python运维脚本整理

    Python 实现的自动化服务器管理 import sys import os import paramiko ssh = paramiko.SSHClient() ssh.set_missing_h ...

  2. python检测服务器是否ping通

    好想在2014结束前再赶出个10篇博文来,~(>_<)~,不写博客真不是一个好兆头,至少说明对学习的欲望和对知识的研究都不是那么积极了,如果说这1天的时间我能赶出几篇精致的博文,你们信不信 ...

  3. python检测是否是质数

    python检测是否是质数 编写python脚本,使得实现以下功能: 输入一个整数,通过脚本判断出输入的这个数是否是质数,然后输出是否是质数. 脚本如下图所示: Num = input("P ...

  4. python检测变量名

    python检测变量名 变量在编程中的用途非常广,在python中,变量的名称只能以字母或者下划线“_”开头,变量名只能由字母.数字.下划线组成. 编写python,使得其实现以下功能: 1.输入一个 ...

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

    python注释.脚本参数.字节码 --道心 python安装 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3. ...

  6. Python数据库备份脚本

    Python数据库备份脚本 #!/usr/bin/env python # author: liudong # -*- coding: utf-8 -*- # filename: db_bak.py ...

  7. python检测文件的MD5值

    python检测文件的MD5值MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权 ...

  8. 使用python检测一个设备是否ping的通

    使用python检测一个设备是否ping的通 一,subprocess以及常用的封装函数 运行python的时候,我们都是在创建并运行一个进程.像Linux进程那样,一个进程可以fork一个子进程,并 ...

  9. Linux上使用SMART检测硬盘

    SMART(Self-Monitoring, Analysis, and Reporting Technology)是一种普及度比较高的磁盘分析检测工具,磁盘运行过程中,该工具搜集磁盘的状态参数,如型 ...

随机推荐

  1. Thunder——基于NABCD评价“欢迎来怼”团队作品

    基于NABCD N——need需求 对于开设了软件工程课并且正在进行教学活动的老师和同学,除了在写作业时会打开电脑进行操作,平时我们更希望可以通过一些简单方便的方法来查看有关作业的内容,比如查看一下老 ...

  2. Java语法基础课后作业

    1.动手动脑 运行它EnumTest.java,分析运行结果 s和t分别引用的是SMALL和LARGE,枚举类型不是原始数据类型,s和u的赋值方式不同,但结果一样,列出它的所有值:SMALL,MEDI ...

  3. Python中对变量是否为None的判断

    三种主要的写法有: 第一种:if X is None; 第二种:if not X: 当X为None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()这 ...

  4. Activemq 消息类型 (转)

    Activemq消息类型JMS规范中的消息类型包括TextMessage.MapMessage.ObjectMessage.BytesMessage.和StreamMessage等五种.ActiveM ...

  5. php添加扩展 在phpinfo能看到该扩展,但在cli用php -m 却看不到,为什么呢,求指教

    1. 没有出现的原因是:执行时添加上php.ini的文件就可以了    $ /usr/local/php/bin/php -c /usr/local/php/etc/php.ini -m | grep ...

  6. Jenkins系列-Jenkins插件下载镜像加速

    可供选择的jenkins2 插件镜像列表: Jenkins 所有镜像列表: http://mirrors.jenkins-ci.org/status.html比如日本的镜像: http://mirro ...

  7. oracle 11g ADG实施手册(亲测,已成功部署多次)

    一:实验环境介绍 虚拟机系统:    RHEL Linux 6.4(64位) 数据库版本:    Oracle 11gR2 11.2.0.4 (64位) IP地址规划: 主数据库 192.168.11 ...

  8. scala中的模式匹配

    基本语法 变量 match { case 值1 => 代码 case 值2 => 代码 ... case 值N if (...) => 代码 case _ => 代码 } 常量 ...

  9. 第52天:offset家族、scroll家族和client家族的区别

    一.offset家族 1.offsetWidth offsetHeight offsetLeft offsetTop offsetParent共同组成了offset家族,用来获取元素尺寸. offse ...

  10. [转]matlab中squeeze函数的用法,numel的用法

    squeeze的作用是移除单一维. 如果矩阵哪一个维数是1,B=squeeze(A)就将这个维数移除. 考虑2-by-1-by-3 数组Y = rand(2,1,3). 这个数组有单一维 —就是每页仅 ...