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()
python检测硬盘脚本的更多相关文章
- Python运维脚本整理
Python 实现的自动化服务器管理 import sys import os import paramiko ssh = paramiko.SSHClient() ssh.set_missing_h ...
- python检测服务器是否ping通
好想在2014结束前再赶出个10篇博文来,~(>_<)~,不写博客真不是一个好兆头,至少说明对学习的欲望和对知识的研究都不是那么积极了,如果说这1天的时间我能赶出几篇精致的博文,你们信不信 ...
- python检测是否是质数
python检测是否是质数 编写python脚本,使得实现以下功能: 输入一个整数,通过脚本判断出输入的这个数是否是质数,然后输出是否是质数. 脚本如下图所示: Num = input("P ...
- python检测变量名
python检测变量名 变量在编程中的用途非常广,在python中,变量的名称只能以字母或者下划线“_”开头,变量名只能由字母.数字.下划线组成. 编写python,使得其实现以下功能: 1.输入一个 ...
- python注释、脚本参数、字节码
python注释.脚本参数.字节码 --道心 python安装 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3. ...
- Python数据库备份脚本
Python数据库备份脚本 #!/usr/bin/env python # author: liudong # -*- coding: utf-8 -*- # filename: db_bak.py ...
- python检测文件的MD5值
python检测文件的MD5值MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权 ...
- 使用python检测一个设备是否ping的通
使用python检测一个设备是否ping的通 一,subprocess以及常用的封装函数 运行python的时候,我们都是在创建并运行一个进程.像Linux进程那样,一个进程可以fork一个子进程,并 ...
- Linux上使用SMART检测硬盘
SMART(Self-Monitoring, Analysis, and Reporting Technology)是一种普及度比较高的磁盘分析检测工具,磁盘运行过程中,该工具搜集磁盘的状态参数,如型 ...
随机推荐
- 正确使用memset
今天做了一道素数打表的题我在使用一个数组记录是否为素数的时候使用了memset,将数组里面的数都清为1,代表是素数,不是素数,就改成0,我在判断这一个数是否为素数是依据也是是0还是1,结果一直存在问题 ...
- 感谢信——Alpha版
作为Thunder团队的leader,当时担任组长,说实话,确实是头脑一热,可后来,在确定选题时,看着大家都有自己的想法,看着大家都那么踊跃,而我因为性格的原因,总是难以做决定,导致选题这件事就开了几 ...
- Thunder团队第三周 - Scrum会议6
Scrum会议6 小组名称:Thunder 项目名称:i阅app Scrum Master:宋雨 工作照片: 代秋彤照相,所以图片中没有该同学. 参会成员: 王航:http://www.cnblogs ...
- sql分页使用join提高性能
今天在分析系统中的分页sql时意外知道了使用join可以提高分页性能. 逻辑是join部分使用单一表,单一字段排序分页,然后join大表.
- lintcode-186-最多有多少个点在一条直线上
186-最多有多少个点在一条直线上 给出二维平面上的n个点,求最多有多少点在同一条直线上. 样例 给出4个点:(1, 2), (3, 6), (0, 0), (1, 3). 一条直线上的点最多有3个. ...
- LintCode-372.在O(1)时间复杂度删除链表节点
在O(1)时间复杂度删除链表节点 给定一个单链表中的一个等待被删除的节点(非表头或表尾).请在在O(1)时间复杂度删除该链表节点. 样例 给定 1->2->3->4,和节点 3,删除 ...
- perf中branch-filter到底是干嘛的?
./arch/x86/events/intel/core.c:2161: data.br_stack = &cpuc->lbr_stack;./arch/x86/e ...
- overflow:scroll 滚动条不显示
overflow:scroll 滚动条不显示 ::-webkit-scrollbar-thumb 可能因为 自定义的滚动条height比元素可展示内容大
- 第33天:封装自己的class类
封装自己的class类,实现浏览器兼容. <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- hdu 1596 find the safest road (最短路径)
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...