<通过python hp ilo对机器的状态进行监控>
标签: <无>
- [代码][通过python hp ilo对机器的状态进行监控Python]代码
#!/usr/bin/python2.7
import hpilo
import sys
import time
import os
import json
import argparse
def check_log(fname):
if not os.path.exists(fname):
os.mknod("/tmp/ilo_error.log")
check_log('/tmp/ilo_error.log')
avg = argparse.ArgumentParser()
avg.add_argument('-H',help="Plz input destination IP")
avg.add_argument('-U',help="Plz input destination port")
avg.add_argument('-P',help="Plz input connect user")
qq = avg.parse_args()
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎
ls = os.linesep
rs = hpilo.Ilo(qq.H, qq.U, qq.P)
li = rs.get_server_event_log()
the_time = (time.time() - 259200)
save_list = []
yes = 1
error_num = 0
for y in li:
for z, k in y.items():
if z == 'description':
err_rs = k.split(':')
if err_rs[0] == 'POST Error':
error_info = y['description']
error_time = y['initial_update']
error_time_strp = time.strptime(error_time, "%m/%d/%Y %H:%M")
error_times = int(time.mktime(error_time_strp))
read_liens = open('/tmp/ilo_error.log','r')
if the_time < error_times:
for m in read_liens:
m = json.loads(m)
if not len(m) == 0:
for line in m:
#print line[1],error_times,line[2],error_info,line[0]
if line[1] == error_times and line[2] == error_info and line[0] < 3:
print "ERROR: %s" % error_info
error_num = line[0] + 1
save_list.append([error_num, error_times, error_info])
error_num += 1
yes = 0
break
elif line[1] == error_times and line[2] == error_info and line[0] == 3:
save_list.append(line)
yes = 0
if yes == 1:
print "ERROR: %s" % error_info
save_list.append([1, error_times, error_info])
else:
print "ERROR: %s" % error_info
save_list.append([1, error_times, error_info])
error_num += 1
read_liens.close()
if error_num == 0:
print "OK!"
exit(0)
else:
fobj = open('/tmp/ilo_error.log','w')
fobj.writelines(json.dumps(save_list))
fobj.close()
exit(1)
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎
网友评论