我必须用主动监控,我需要监控到windos的整个硬盘,盘符通过传递参数的方式。如果我达到我想要的,你需要这三个脚本。谁能帮我改进下一个?我想要一个脚本来完成这两个脚本的工作。如何合并?
1:编码光盘
import sys
import os
import commands
warning = sys.argv[2]
critical = sys.argv[3]
ip =sys.argv[5]
#val = sys.argv[1]
StorageAllocationUnitsC="1.3.6.1.2.1.25.2.3.1.4.1"#last4.1=Cdisk,4.2=Ddisk....
StorageSizeC="1.3.6.1.2.1.25.2.3.1.5.1"#last5.1=Cdisk,5.2=Ddisk....
StorageUsedC="1.3.6.1.2.1.25.2.3.1.6.1"#last6.1=Cdisk,5.2=Ddisk....
StorageAll = "snmpwalk -v 2c -c public %s %s" % (ip,StorageAllocationUnitsC)
(r_c,r_e) = commands.getstatusoutput(StorageAll)
if r_c != 0:
print "C - snmpwalk is Error."
else:
StorageAllC = r_e.split("INTEGER: ")[-1][:4]
StorageSize = "snmpwalk -v 2c -c public %s %s" % (ip,StorageSizeC)
(r_c,r_e) = commands.getstatusoutput(StorageSize)
if r_c != 0:
print "C - snmpwalk is Error."
else:
StorageSize = r_e.split("INTEGER: ")[1]
StorageUsed = "snmpwalk -v 2c -c public %s %s" % (ip,StorageUsedC)
(r_c,r_e) = commands.getstatusoutput(StorageUsed)
if r_c !=0:
print "C - snmpwalk is not value."
else:
StorageUsed = r_e.split("INTEGER: ")[1]
diskall = int(StorageAllC)*int(StorageSize)/1024/1024/1024
diskusd = int(StorageAllC)*int(StorageUsed)/1024/1024/1024
diskrate = round(float(diskusd)/float(diskall)*100,2)
if int(sys.argv[2]) > int(diskrate):
print "Critical - pls check Cdiskrate %s" % diskrate + "%"
ret = 2
elif int (sys.argv[3]) > int(diskrate):
print "Warning - pls check Cdiskrate %s" % diskrate + "%"
ret = 1
else:
print "OK - good! %s" % diskrate + "%"
ret =0
sys.exit(ret)
2:编码Ddisk
import sys
import os
import commands
warning = sys.argv[2]
critical = sys.argv[3]
ip =sys.argv[5]
#val = sys.argv[1]
StorageAllocationUnitsC="1.3.6.1.2.1.25.2.3.1.4.2"#last4.1=Cdisk,4.2=Ddisk....
StorageSizeC="1.3.6.1.2.1.25.2.3.1.5.2"#last5.1=Cdisk,5.2=Ddisk....
StorageUsedC="1.3.6.1.2.1.25.2.3.1.6.2"#last6.1=Cdisk,5.2=Ddisk....
StorageAll = "snmpwalk -v 2c -c public %s %s" % (ip,StorageAllocationUnitsC)
(r_c,r_e) = commands.getstatusoutput(StorageAll)
if r_c != 0:
print "C - snmpwalk is Error."
else:
StorageAllC = r_e.split("INTEGER: ")[-1][:4]
StorageSize = "snmpwalk -v 2c -c public %s %s" % (ip,StorageSizeC)
(r_c,r_e) = commands.getstatusoutput(StorageSize)
if r_c != 0:
print "C - snmpwalk is Error."
else:
StorageSize = r_e.split("INTEGER: ")[1]
StorageUsed = "snmpwalk -v 2c -c public %s %s" % (ip,StorageUsedC)
(r_c,r_e) = commands.getstatusoutput(StorageUsed)
if r_c !=0:
print "C - snmpwalk is not value."
else:
StorageUsed = r_e.split("INTEGER: ")[1]
diskall = int(StorageAllC)*int(StorageSize)/1024/1024/1024
diskusd = int(StorageAllC)*int(StorageUsed)/1024/1024/1024
diskrate = round(float(diskusd)/float(diskall)*100,2)
if int(sys.argv[2]) > int(diskrate):
print "Critical - pls check Cdiskrate %s" % diskrate + "%"
ret = 2
elif int (sys.argv[3]) > int(diskrate):
print "Warning - pls check Cdiskrate %s" % diskrate + "%"
ret = 1
else:
print "OK - good! %s" % diskrate + "%"
ret =0
sys.exit(ret)