玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > 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)

玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/code/c313.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年02月06日 - 15时49分20秒 发布自玩蛇网

我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules