nagios监控硬盘剩余容量
来源:互联网 发布:沙特国王科技大学知乎 编辑:程序博客网 时间:2024/04/30 08:24
查看df源码,会发现它读取是statvfs提供的值,而python本身也有statvfs方法,利用它就可以做一个python版的df了,结合nagios的监控格式要求,把输出格式改下,便可通过nagios实现告警和绘图。
当然,您也可以直接通过os.popen或者subprocess等模块获取df输出的数据,格式化下输出(这样好像暴力了点? XD)。
#!/usr/bin/env python# _*_coding:utf-8_*_"""check disk space"""# $Id$#__author__ = 'warshipJian'__version__ = '$Revision: 0.1 $'import osimport sysimport statvfsdef 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()
参考:
http://blog.csdn.net/yui/article/details/6046708
0 0
- nagios监控硬盘剩余容量
- 获取硬盘剩余容量
- 监控硬盘剩余空间
- java获得硬盘大小以及硬盘剩余容量
- nagios监控
- Nagios 监控
- Nagios监控
- Nagios监控
- nagios监控
- 在vc中获得windows系统信息,硬盘剩余容量,内存大小
- 获取SD卡剩余容量
- 获取硬盘的容量
- nagios监控实例 -- PostgreSQL监控
- [nagios监控] 监控samba服务
- [nagios监控] 监控samba服务
- Nagios:监控Mysql服务器
- nagios 监控 虚拟主机
- nagios的多层监控
- 调试魅族手机不显示通知栏消息bug的过程
- Raknet 库学习二
- windows下MySQL 5.7+ 解压缩版安装配置方法
- ROS的开机自启脚本编写
- Robot Framework app UI 自动化测试
- nagios监控硬盘剩余容量
- HDOJ 2048简单错排、2049组合错排
- 通过url参数访问Handler
- 【Linux】Ubuntu vim的安装和基本配置
- poj-1236
- 算法笔记——【贪心算法】单源最短路径问题
- 外排序多路归并+败者树-算法学习笔记十五
- 一个组合数证明
- Jsp与Servlet面试题