下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
#!/usr/bin/env python#Coding:utf-8""" Author: EDWard.Zhou -- <[email protected]> Purpose: 监控精密空调DataMate3000状态 Created: 2015年05月02日"""import unittestimport netsnmpimport sysimport argparse#DataMate3000MIB库DaTaMate3000MIB = { 'SmartOutput': { 'Temperature': '.1.3.6.1.4.1.13400.2.10.1.2.2.1',#温度 'HumIDity': '.1.3.6.1.4.1.13400.2.10.1.2.2.2',#湿度 },'BaseStatus': { #'''Status: unkNown ( 1 ),ok ( 2 ),lostCommunication ( 3 ),notEstablished ( 4 )''' 'Communication': '.1.3.6.1.4.1.13400.2.10.1.3.1.1',#通信状态 },'SmartStatus': { #'''Status: #unkNown ( 1 ),on ( 2 ),off ( 3 )''' 'UnitOnOff': '.1.3.6.1.4.1.13400.2.10.1.3.2.1',#开关机 'MainFan': '.1.3.6.1.4.1.13400.2.10.1.3.2.2',#风机 'CoolMode': '.1.3.6.1.4.1.13400.2.10.1.3.2.3',#制冷 'HeatMode': '.1.3.6.1.4.1.13400.2.10.1.3.2.4',#加热 'HumIDifyMode': '.1.3.6.1.4.1.13400.2.10.1.3.2.5',#加湿 'DehumIDifyMode': '.1.3.6.1.4.1.13400.2.10.1.3.2.6',#除湿 'HighPressure': '.1.3.6.1.4.1.13400.2.10.1.3.2.7',#高压告警 'LowPressure': '.1.3.6.1.4.1.13400.2.10.1.3.2.8',#低压告警 'HighTemperature': '.1.3.6.1.4.1.13400.2.10.1.3.2.9',#高温告警 'LowTemperature': '.1.3.6.1.4.1.13400.2.10.1.3.2.10',#低温告警 'HighHumIDify': '.1.3.6.1.4.1.13400.2.10.1.3.2.11',#高湿告警 'LowHumIDify': '.1.3.6.1.4.1.13400.2.10.1.3.2.12',#低湿告警 'PowerFailure': '.1.3.6.1.4.1.13400.2.10.1.3.2.13',#电源故障告警 'ShortCycle': '.1.3.6.1.4.1.13400.2.10.1.3.2.14',#短周期告警 'CustomAlarm1': '.1.3.6.1.4.1.13400.2.10.1.3.2.15',#自定义告警1 'CustomAlaarm2': '.1.3.6.1.4.1.13400.2.10.1.3.2.16',#自定义告警2 'MainFanServicerequired': '.1.3.6.1.4.1.13400.2.10.1.3.2.17',#主风机维护请求 'HumIDifIErServicerequired': '.1.3.6.1.4.1.13400.2.10.1.3.2.18',#加湿器维护请求 'FilterServicerequired': '.1.3.6.1.4.1.13400.2.10.1.3.2.19',#过滤网维护请求 'CoilFroze': '.1.3.6.1.4.1.13400.2.10.1.3.2.20',#盘管冻结 'HumIDifIErFailure': '.1.3.6.1.4.1.13400.2.10.1.3.2.21',#加湿器故障 'SensorBoardFailure': '.1.3.6.1.4.1.13400.2.10.1.3.2.22',#传感器板故障 'dischargeTemperatureFailure': '.1.3.6.1.4.1.13400.2.10.1.3.2.23',#排气温度故障 'PowerLost': '.1.3.6.1.4.1.13400.2.10.1.3.2.24',#电源丢失 'InnerCommFailure': '.1.3.6.1.4.1.13400.2.10.1.3.2.25',#空调通讯状态 },}#设置返回状态码'''ST_OK=0 #正常ST_WR=1 #错误ST_CR=2 #严重警告ST_UK=3 #未知'''#采用snmp协议获取相应OID值def snmpGet(oID,version = 1,community = 'public',host = 'localhost'): try: result = netsnmp.snmpwalk(oID,Version = version,Community = community,DestHost = host) except Exception,err: print err sys.exit() if result: return result[0] else: return Nonedef main(): parser = argparse.ArgumentParser(description='DataMate 3000 status check') parser.add_argument('-i','--host',dest='host',nargs = '?',default= 'localhost',required = False,help='The specifIEd monitoring DataMate 3000 IP or Host') parser.add_argument('-v','--version',dest='version',default= 1,type = int,help='The specifIEd snmp version') parser.add_argument('-C','--Community',dest='Community',default= 'public',help='The specifIEd snmp community') parser.add_argument('-V','--Variable',dest = 'Variable',default = 'Temperature',required = True,choices = ['Temperature','HumIDity'],help = 'The specifIEd check object' ) parser.add_argument('-w','--warning',dest = 'warning',default = None,help = 'Threshold which will result in a warning status') parser.add_argument('-c','--critical',dest = 'critical',help = 'Threshold which will result in a critical status') args = parser.parse_args() #检测环境温度 if args.Variable == 'Temperature': toID = DaTaMate3000MIB['SmartOutput']['Temperature'] _result = snmpGet(toID,args.version,args.Community,args.host) result = float(_result) if (result / 10) < args.warning: print "DataMate 3000 Teamperature is %s ℃,status is ok." % (result / 10) sys.exit(0) elif (result / 10) >= args.warning and (result / 10) <= args.critical: print "DataMate 3000 Teamperature is %s ℃,status is warning." % (result / 10) sys.exit(1) elif (result / 10) >= args.critical: print "DataMate 3000 Teamperature is %s ℃,status is critical." % (result / 10) sys.exit(2) else: print "DataMate 3000 Teamperature is unkNown ℃,status is unkNown." sys.exit(3) #检测环境湿度 if args.Variable == 'HumIDity': hoID = DaTaMate3000MIB['SmartOutput']['HumIDity'] _result = snmpGet(hoID,args.host) result = float(_result) if result < args.warning: print "DataMate 3000 HumIDity is %s %%rH,status is ok." % result sys.exit(0) elif result >= args.warning and result <= args.critical: print "DataMate 3000 HumIDity is %s %%rH,status is warning." % result sys.exit(1) elif result >= args.critical: print "DataMate 3000 HumIDity is %s %%rH,status is critical." % result sys.exit(2) else: print "DataMate 3000 HumIDity is unkNown %%rH,status is unkNown." sys.exit(3) if __name__ == '__main__': main()
以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的精密空调DataMate3000环境监控脚本全部内容,希望文章能够帮你解决精密空调DataMate3000环境监控脚本所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)