首页 > 其他 > 详细

数以千计的服务器存活状态检查

时间:2019-12-03 09:07:18      阅读:75      评论:0      收藏:0      [点我收藏+]
# !/usr/bin/python # -*- coding: UTF-8 -*- import commands import sys import time class server_unreache(object): def __init__(self, ip_list): self.ip_list = ip_list #第一次获取无法ping通的服务器列表 def unreachable_ip_list(self): global unreachable_iplist_one_time unreachable_iplist_one_time=[] get_un_iplist_str = "/sbin/fping -u -f {}".format(ip_list) (status, get_un_iplist) = commands.getstatusoutput(get_un_iplist_str) for unreach in get_un_iplist.split(‘\n‘): unreachable_iplist_one_time.append(unreach) #return unreachable_iplist_one_time pass # 对第一次获取无法ping通的服务器列表,在进行3次ping操作,每次操作时间间隔为10秒 def do_3times_fping_unreachable(self): global unreache_3times unreache_3times=[] for j in range(3): for i in range(len(unreachable_iplist_one_time)): get_3times_un_iplist_str = "/sbin/fping -u {}".format(unreachable_iplist_one_time[i]) time.sleep(10) (status, get_3times_un_iplist) = commands.getstatusoutput(get_3times_un_iplist_str) print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) if status != 0 and get_3times_un_iplist not in unreache_3times: unreache_3times.append(get_3times_un_iplist) print("{} times,unreache_3times {}".format(j+1,unreache_3times[i])) print(unreache_3times) pass def do_reboot(self,count=0): global do_reboot_cmd do_reboot_cmd="ipmitool -I lanplus -H {} -U UserNmae -P PassWord chassis power status" for i in range(len(unreache_3times)): count = count + 1 #print(count) if count <= 2: print("do_reboot_ip:{},\n do_reboot_cmd:{}".format(unreache_3times[i],do_reboot_cmd.format(unreache_3times[i].replace(‘172.‘,‘10.‘)))) #print("do_reboot_ip", unreache_3times[i]) if __name__ == ‘__main__‘: ip_list = sys.argv[1] ds=server_unreache(ip_list) ds.unreachable_ip_list() ds.do_3times_fping_unreachable() ds.do_reboot()

数以千计的服务器存活状态检查

原文:https://blog.51cto.com/880314/2455444

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!