当前位置:天才代写 > tutorial > Python教程 > python nagios插件–监控inodes

python nagios插件–监控inodes

2018-05-17 08:00 星期四 所属: Python教程 浏览:366

python">#!/bin/env python
#-*-coding:utf-8-*-

'''
Create date: 2015-12-01
Version: 1.0
Description: Monitor inodes
Author: Linjianying
QQ: 122517575
'''

import os
import sys

##############################################################
############################说明区############################
##############################################################
#帮助页
def help():
    print '''check_inodes.py V1.0
This plugin checks the amount of disk inode space is free on a mounted file system
and generates an alert if free inode space is less than one of the threshold values
Exit with WARNING status if less than PERCENT of inode space is free !!!'''
    print 'Usage:','\n', sys.argv[0], '-w <Warning_threshold> -c <Critical_threshold>'
    print 'Example:','\n', sys.argv[0], '-w 20% -c 10%'

if len(sys.argv) < 5:
    help()
    sys.exit(3)
elif sys.argv[1] != '-w':
    help()
    sys.exit(3)
elif sys.argv[3] != '-c':
    help()
    sys.exit(3)
elif sys.argv[2].strip("%") < sys.argv[4].strip("%"):
    print 'Critical_threshold must be less than Warning_threshold'
    sys.exit(3)

##############################################################
############################功能区############################
##############################################################
#挂载点
dflist = []
mtlist = []
mtdict = {}
dfinfo = os.popen("df -h")
for line in dfinfo.readlines():
    dflist.append(line)
for every in dflist[2:len(dflist)+1]:
    result = every.split(' ')
    mtlist.append(result[len(result)-1].strip("\n"))
#inodes
def getinodes(mt):
    return "{0:.0f}%".format(float(os.statvfs(mt).f_favail) / os.statvfs(mt).f_files * 100 )
for mt in mtlist:
    mtdict[mt] = getinodes(mt)
###print mtdict.values()

##############################################################
############################输出区############################
##############################################################
#check
intmt = [int(i.strip("%")) for i in mtdict.values()]
if min(intmt) < int(sys.argv[4].strip("%")):
    print 'Critical -', mtdict
    sys.exit(2)
elif int(sys.argv[2].strip("%")) > min(intmt) > int(sys.argv[4].strip("%")):
    print 'Warning -', mtdict
    sys.exit(1)
else:
    print 'OK -', mtdict
    sys.exit(0)

标签:python

 

    关键字:

天才代写-代写联系方式