使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件

使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件

之前写过.bat 脚本用来监控tomcat运行宕机后自动重启的文章,接下来提供下python脚本方法,供各位同仁参考,所有方法基于本人实际开发环境,如有瑕疵,还望各位看官批评指正!

原理

1.通过socket 连接需要监控的服务器及端口

2.如果无法建立连接,则说明该都端口存在问题,此时调用tomcat重启方法。注意:tomcat 启动也需要一定的时间,这里我们需要做个时间缓冲。

具体流程

1.打开python 编辑器,我用的是PyCharm

在这里插入图片描述
2.随便新建一个python项目
在这里插入图片描述
3.这里我开始创建python file取名TomcatRestart.py
在这里插入图片描述
直接上代码,具体原理上面已做说明

# -*- coding: utf-8 -*-


import os
import sys
import socket
import time
import datetime
import pip
#到python的pip的路径下,一般是python\scripts下执行命令(pip install psutil)


#-----服务器上tomcat的信息和服务器的信息---
path = 'path'   #服务器tomcat路径 注意需要双斜杠
ip = 'ip'      #服务器ip地址
port = 8080              #tomcat端口
file_path = 'E:\\tomcatlog'   #记录每次脚本执行的日志文件文件夹路径


#-------检测8080端口是否能连接,能则tomcat运行中,否则重启tomcat----
def tomcat():
    try:
        b = s.connect((ip,port))
       # os.system("echo %s  connect to port 8080 successfully! >> %s" %(otherStyleTime, logfile))
        status_code = 1
    except Exception:
        status_code = 2
    if status_code == 2:
        os.chdir(path)
        os.system('shutdown.bat')
        os.system("echo %s   can't connect to port 8080, stop tomcat >> %s" %(otherStyleTime,logfile))
        time.sleep(1)
        os.system('startup.bat')
        os.system("echo %s    tomcat restart! >> %s" %(otherStyleTime, logfile))
        time.sleep(60) //注:重启需要一段时间,这里放置60秒等待时间,一般服务器足够重启了
if __name__ == '__main__':
    while True :     #每1秒循环执行一次脚本
        #--------创建ipv4地址簇的tcp连接的socket-------------------
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.settimeout(1)//设置连接时间,超过1秒无法链接,即默认tomcat 发生异常,执行tomcat()方法
        except socket.error as msg:
            os.system("echo Failed to create socket. Error code: %s , Error message : %s >> %s " %s(str(msg[0]),msg[1],logfile))
        now = int(time.time())
        timeArray = time.localtime(now)
        otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)    #获取固定格式时间的字符串
        logfile = file_path + '\%s.log' %(time.strftime('%Y%m%d',time.localtime()))    #日志文件存放处
        tomcat()
        time.sleep(1)

4.可以现在本地测试效果,直接run 这个TomcatRestart.py文件 ,然后发现自动打开了本地tomcat

在这里插入图片描述
关闭tomcat后,程序监控到关闭又会自动打开,还是比较流畅好用的对于一般中小型项目没压力。

.py文件转换成.exe文件

上面的代码可以达到预期的效果,但是操作起来未免太麻烦,接下来我将TomcatRestart.py文件进行转换生成一个.exe,保证高效可移植。

转换步骤

1.需要安装pywin32
打开setings
在这里插入图片描述
-------选择
在这里插入图片描述查看自己编辑器是否含有标红处的插件,如没有点击右侧“+”号,搜索pywin32
在这里插入图片描述选中相应版本然后进行安装
在这里插入图片描述
注:如果安装失败,看下具体什么原因,一般情况是pip需要升级,按照英文提示的本部进行更新,然后再重新安装pywin32就好了。

2.新建一个文件夹例如 pytomcat,将你需要转换的.py文件和exe文件的.ico图片复制到此文件下。(至于如何把图片转换成.ico格式,直接网上一大堆在线工具)
在这里插入图片描述接下来打开cmd 命令窗口,通过命令进入文件夹目录下

在这里插入图片描述
执行命令 pyinstaller -F -i 1.ico TomcatRestart.py
在这里插入图片描述
很棒!转换完成!
执行完命令后,需要的exe文件就在dist文件夹中
在这里插入图片描述

双击启动TomcatRestart.exe 文件 完美运行!

最后给个小姐姐打个广告,日用百货,休闲零食可以加她xinxin7527。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值