公司的生产线上有200多台服务器每天都在高速运行,每天上班之后的第一件事情,就是要检查这200多台机器的服务是否正常,像这种每天需要重复做的事情,我喜欢通过自动化脚本来解决,而Python则为我提供了一种方便而简洁的解决方法!!!
一:收集所有服务器的ip地址和业务端口,并保存在ip-port.txt的文件中
由于涉及到生产的ip地址和端口,这里我就用其它非生产的ip地址做演示,ip地址和端口之间通过":"冒号来隔开

文章插图
私信小编 01 技术问题 视频源码 PDF一切都有!~
二:定义一个函数,先将ip-port.txt文件转成一个列表
def readfile(): ipportlist = [] #定义一个空列表 file = open('ip-port.txt','r',encoding='utf-8') rfile = file.readlines() #读取文件中的内容,得到一个列表,每一行就是一个元素 for n in rfile: n1 = n.replace('n','') #去掉元素中的换行符 ipportlist.Append(n1) return ipportlist
三:定义一个函数,检查业务端口是否正常
def serverport(host,port): #定义一个函数,传入2个变量 sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #定义一个socket的ipv4会话 sk.settimeout(2) #定义2秒钟超时 try: sk.connect((host,port)) print('succ:' + host) with open('succ.txt','a',encoding='utf-8') as file: file.write(host + ':' + str(port) + 'n') except: print('fail:' + host) with open('fail.txt','a',encoding='utf-8') as file: file.write(host + ':' + str(port) + 'n')
四:将两个函数结合起来,得到最终的结果
if __name__ == '__main__': #程序入口 for s in readfile(): #获取文件中的每一个ip和端口 s1 = re.split(':',s) #以冒号作为分隔符,将ip和端口分离,得到一个列表 ip = s1[0] port = int(s1[1]) serverport(ip,port) #函数传参,并检测
代码执行完之后,不仅会将结果输出在显示屏上面,还会生成succ.txt和fail.txt两个文件

文章插图
总结:
- 喜欢用自动化运维的思想去处理工作当中的问题
- 学以致用,写代码就是要经常练习
【Python如何解决200台服务器业务端口检测?技术大牛教你实现】
推荐阅读
-
人大国际新闻硕士和TPlink海外营销专员offer,咋选
-
现代快报|三兄弟24年前杀害少女 落网前还曾犯下6起强奸案
-
澎湃新闻|双汇发展上半年净利超30亿元,生猪屠宰量下降约六成
-
成毅|成毅婉拒与张予曦李小冉搭档,均比较的现实,确实不太适合
-
留学生|微博“票代”借售机票设连环套……骗数十留学生上百万!
-
-
-
-
-
去医院作妇科检查或B超,手术等,一群实习生围观并把治疗时间拉长了,有没有必要先事先咨询病人是不是介意
-
-
「孟加拉国」孟加拉国达卡郊区一工厂失火,至少10人丧生
-
小编就来盘点下古装剧中的10大蒙面女神,对羽皇风天逸的爱有无限的渴望
-
【豪情NBA】勒布朗恐错失最后夺冠机会,勇士戏耍了联盟,NBA计划取消本赛季
-
英雄联盟S10|S10淘汰赛:TES三无阵容击败FNC,让二追二连追两局
-
-
高铁|德国人评价的各国高铁,日法两国各有特色,评价中国只用了
-
今年年底结婚,基本无朋友同事可请,咋办男朋友朋友很多。
-
树上摘下来的银杏怎么食用,怎么食用银杏食用银杏的好处是什么
-
「秋天的说娱乐」因不避讳被打,徽柔即将降生却遭难产,清平乐:小怀吉上线很聪明