#!/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)