python编写脚本,通过telnet登录站点验证站点状态,并将telnet的流程做成可配置的,可新增多个站点同时监控
一、配置文件config.ini
[Others]
;访问次数
run_times = 10000
;每次访问间隔时间
sleep_time = 30
;站点列表
[web1]
;站点域名或IP
host = 192.168.20.1
;端口
port = 80
;telnet超时时间
timeout = 5
[web2]
host = 192.168.20.2
port = 80
timeout = 5
二、telnet工具
python引用配置文件可以参考文献:python | 读取ini配置文件
import codecs
import telnetlib
import time
import traceback
import configparser
config = configparser.ConfigParser()
config.read('config.ini', encoding="utf-8")
webs = config.sections()
run_times = int(config.get('Others', 'run_times'))
sleep_time = int(config.get('Others', 'sleep_time'))
for i in range(1, run_times):
for j in range(1, len(webs)):
try:
host = config.get(webs[j], 'host')
port = config.get(webs[j], 'port')
timeout = int(config.get(webs[j], 'timeout'))
tn = telnetlib.Telnet(host, port, timeout=timeout)
print('telnet '+host+' '+port+' Success:' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) + '\n')
fp = codecs.open("telnet_log.txt", 'a', 'utf-8')
fp.write('telnet '+host+' '+port+' Success:' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) + '\n')
fp.close()
tn.close()
except:
print('telnet '+host+' '+port+' Failed:' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) + '\n')
fp = codecs.open("telnet_log.txt", 'a', 'utf-8')
fp.write('telnet '+host+' '+port+' Failed:' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) + '\n')
fp.close()
traceback.print_exc(file=open('telnet_error_log.txt', 'a+'))
time.sleep(sleep_time)
三、编译成exe文件
-
使用pip pyinstaller安装插件 -
cmd进入插件的安装路径,一般在python安装路径的scripts路径下(若已将scripts目录加入path环境变量中,则不用进入该目录) -
使用命令pyinstaller -F (py文件存放路径)\telnet.py打包,在当前目录下生成dist文件夹,文件夹内存放着打包后的文件telnet.exe,打包参数详解可以参考文献Python将py文件编译为exe的方法: -
将配置文件config.ini与telnet.exe放在同一目录下,双击运行即可,运行后会打开一个dos弹窗,关闭该弹窗则停止运行。
已打包工具百度网盘链接: 链接:https://pan.baidu.com/s/1CU3L-e_CLydhTIsQJu1Liw 提取码:mxwo
|