【Python】通过python hp ilo对机器的状态进行监控

<通过python hp ilo对机器的状态进行监控>

标签: <无>

  1. [代码][通过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()
 
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的最详细的源码教程

2019年Python爬虫学习路线图完整版

Python为何能坐稳AI人工智能的头牌语言

Python崛起,TIOBE编程语言排行榜再创新高!

猜你喜欢

转载自blog.csdn.net/kkk123789/article/details/93746702
今日推荐