圆月山庄资源网 Design By www.vgjia.com
本文实例讲述了Python实现根据指定端口探测服务器/模块部署的方法,非常具有实用价值。分享给大家供大家参考借鉴。
有些时候,在维护过程中,服务器数量非常多。应用模块部署在不同服务器上。有时维护人员做了模块迁移,而未及时同步至手册中。查找比较困难。于是,产生Python根据应用端口进行探测,获取模块部署。
设想非常简单:通过简单的tcp链接,如果能够成功的建立,立即断开,防止影响业务。表示模块在某服务器上有部署。
具体功能代码如下:
#!/bin/env python # import socket import time from threading import Thread hostList=["10.10.126.170","10.10.126.173","10.10.126.177","10.10.126.170","10.10.126.173","10.10.126.177"] onLine=[] offLine=[] gathered=[] hostDict={"onLine":[],"offLine":[]} class detect(Thread): def __init__(self,ip, port=22): Thread.__init__(self) self.ip=ip self.port=port def run(self): address=(self.ip,self.port) sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: sock.connect(address) buff=sock.recv(1024) if(len(buff)): print("detect Host %s Online" % self.ip) onLine.append(self.ip) except: print("detect Host %s OffLine" % self.ip) offLine.append(self.ip) sock.close def sigle_detect(ip): p=detect(ip) p.start() p.join(60) def multi_detect(host): T_thread=[] for ip in set(host): t=detect(ip) t.name=ip t.start() T_thread.append(t) for t in T_thread: t.join(15) def filter_gather(hlist): gather=[] for t in set(hlist): gather.append(t) return gather def mak_hostList_byip3(iplist): global hostList hostList=[] for ip in set(iplist): tmp=ip.split('.') if(len(tmp)==3): for i in range(2,254): hostList.append('%s.%d' % (ip, i)) elif(len(tmp)==4): hostList.append(ip) else: continue return hostList def update_hostDict(onLine, offLine): hostDict["onLine"]=onLine hostDict["offLine"]=offLine def make_pickle_fileName(): import time fileName="" for s in time.localtime()[:5]: fileName=fileName+str(s) fileName="Host_%s.pkl" % fileName return fileName def save_gathered(fileName, hostDict): import pickle F=open(fileName,'wb') pickle.dump(hostDict,F) F.close() def recovery_gathered(fileName, keyList): import pickle try: F=open(fileName,'rb') E=pickle.load(F) keyList.append(E) except: F.close() return while E: try: E=pickle.load(F) keyList.append(E) except: F.close() break if __name__=='__main__': sigle_detect(hostList[0]) #--------------- mak_hostList_byip3(hostList) multi_detect(hostList) onLine=filter_gather(onLine) print(onLine) offLine=filter_gather(offLine) print(offLine) gathered=onLine+offLine print(gathered) update_hostDict(onLine, offLine) print(hostDict) fN=make_pickle_fileName() save_gathered(fN,hostDict) keyList=[] recovery_gathered(fN,keyList) print(keyList)
希望本文讲述的方法对大家的Python程序设计有所帮助。
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
更新日志
2024年11月08日
2024年11月08日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]