首页 / 知识
Python测试远程端口连接时间
2023-11-12 13:37:00
最近自己服务器访问别人的服务器,有时候会报超时错误,有时候又能够正常访问别人服务器。
思路
最开始猜测是网络不稳定造成的,但是自己没有收集什么时候超时,什么时候能正常访问别人服务器的日志,搞网络运维的同学根本不鸟我(其实,这活本来就是运维的事,有点小心塞,不过想起蜘蛛侠的名言)。
能力越大,责任就越大
写个python脚本,然后,在python脚本里面使用telnet去连接别人服务器对应的端口,然后,计算连接前后的时间长短。
解决
importos
importcsv
importtime
importargparse
importtelnetlib
fromdatetimeimportdatetime
#测试远程服务端口连接耗时
#python3windows_telnet.py192.168.10.2180
parser=argparse.ArgumentParser()
parser.add_argument("ip",type=str,help="ip")
parser.add_argument("port",type=str,help="port")
args=parser.parse_args()
timeFormat="%Y-%m-%d%H:%M:%S.%f"
starTimeTitle="开始连接时间"
endTimeTitle="结束连接时间"
differenceTimeTitle="连接总耗时"
whileTrue:
starTime=datetime.now()
starTimeView=starTime.strftime(timeFormat)
print("开始连接:{0}".format(starTimeView))
tn=telnetlib.Telnet(args.ip,args.port)
endTime=datetime.now()
endTimeView=endTime.strftime(timeFormat)
print("连接完成:{0}".format(endTimeView))
tn.close()
print("连接结束")
differenceTime=endTime-starTime
print("连接消耗:{0}".format(differenceTime))
nowTime=datetime.now()
csvFileName="{0}.csv".format(nowTime.strftime("%Y-%m-%d"))
ifos.path.exists(csvFileName)isnotTrue:
withopen(csvFileName,"w",newline="")ascsvfile:
fieldnames=[starTimeTitle,endTimeTitle,differenceTimeTitle]
writer=csv.DictWriter(csvfile,fieldnames=fieldnames)
writer.writeheader()
withopen(csvFileName,"a",newline="")ascsvfile:
fieldnames=[starTimeTitle,endTimeTitle,differenceTimeTitle]
writer=csv.DictWriter(csvfile,fieldnames=fieldnames)
writer.writerow({starTimeTitle:starTimeView,endTimeTitle:endTimeView,differenceTimeTitle:differenceTime})
time.sleep(0.2)
这里涉及到几个Python的知识点:
●获取当前时间,计算时间差以及时间格式化
●telnetlib的使用
●生成csv文件以及对文件读写
●在whileTrue这个死循环里面需要避免cpu飙到100%问题,则需要在最后一行添加time.sleep(0.2)
接下来一个一个谈这些点:
Python3获取当前时间
fromdatetimeimportdatetime
starTime=datetime.now()
endTime=datetime.now()
这样获取出来的时间,我们一般需要在进行格式化处理才能够展现给用户看。
Python3时间格式化
在上面的基础上,我们可以,这样做
timeFormat="%Y-%m-%d%H:%M:%S.%f"
starTimeView=starTime.strftime(timeFormat)
使用strftime方法处理,具体可以查看Python3文档的date.strftime(format)部分。
Python3计算时间差
differenceTime=endTime-starTime
对,就这样相减,就完事了。
telnetlib的使用
importtelnetlib
tn=telnetlib.Telnet("192.168.10.21","80")
csv文件创建
importos
importcsv
csvFileName="{0}.csv".format(nowTime.strftime("%Y-%m-%d"))
ifos.path.exists(csvFileName)isnotTrue:
withopen(csvFileName,"w",newline="")ascsvfile:
fieldnames=[starTimeTitle,endTimeTitle,differenceTimeTitle]
writer=csv.DictWriter(csvfile,fieldnames=fieldnames)
writer.writeheader()
这里是先判断文件是否存在,如果不存在,就创建一个csv文件,并且写好表头。
csv文件追加
withopen(csvFileName,"a",newline="")ascsvfile:
fieldnames=[starTimeTitle,endTimeTitle,differenceTimeTitle]
writer=csv.DictWriter(csvfile,fieldnames=fieldnames)
writer.writerow({starTimeTitle:starTimeView,endTimeTitle:endTimeView,differenceTimeTitle:differenceTime})
死循环避免CPU飚高
循环里面最后添加一行:
importtime
time.sleep(0.2)
让线程休眠一段时间,这样就避免死循环占用cpu太高。
使用脚本
python3windows_telnet.py192.168.10.2180
以后就可以通过这个脚本监测远程端口连接问题,并每天生成一个日志文件。
以上内容为大家介绍了python中的反斜杠,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们http://www.mobiletrain.org/
最新内容
相关内容
Python网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tcPython实现批量文件的压缩处理
Python实现批量文件的压缩处理,项目,信息,分析,数据,软件,培训,文件夹,文件,源文件,目标,一、前言接到项目求助,需要对上千个文件夹中的文件进Python 3.6 中针对文件系统的神奇
Python 3.6 中针对文件系统的神奇方法,数字,代码,数据,标准,信息,培训,首次,工作,文件名,常数,Python3.6首次发布于2016年,尽管它已经发布了很Python如何在后台自动解压各种压缩
Python如何在后台自动解压各种压缩文件?,代码,综合,工具,分析,检测,培训,文件,文件夹,模块,结尾,一、需求描述编写一个Python程序,每次下载压Python处理文件的几个常用小知识
Python处理文件的几个常用小知识,数据,代码,信息,文件,系统,培训,分析,交通,名称,名字,python这门语言有个很大的用途就是使用它来进行文件处用Python来自动化处理文件
用Python来自动化处理文件,数据,代码,模具,时间,文件,电脑,投入,工具,培训,项目,当代码投入生产时,你需要去组织代码的文件。读写、创建和运行Python数据结构的时间复杂性
Python数据结构的时间复杂性,时间,项目,情况,平均,复杂度,培训,术语,数据,状态,操作,1.让我们了解大O符号的含义是什么?在算法中执行许多操作Python集合和时间复杂度
Python集合和时间复杂度,项目,时间,数据,数字,照片,情况,通用,培训,平均,表示,在本文的这一部分中,我将记录CPython中的常见集合,然后概述它们Python文件读取相关方法
Python文件读取相关方法,数据,位置,文件,中行,培训,方法,字节,内容,结果,字符串,我们知道,对文件的读取操作需要将文件中的数据加载到内存中,而如何在 python 中打开文件?
如何在 python 中打开文件?,名称,单位,培训,模式,文件,表示,缓存,路径,函数,定义,使用内置函数open就可以打开文件。先来看下python中对openpython文件打开模式
python文件打开模式,观点,数据,文件,权威,管理,系统,名称,资料,培训,模式,我们先来看下在Python、PHP和C语言中打开文件的函数定义Python#PytPython文件操作步骤示例
Python文件操作步骤示例,异常,代码,信息,文件,设计,简介,通用,意外,中级,培训,我们来读取这样一个文本文件:song.txt,该文件的字符编码为utf-8