python脚本监控windows系统上的tomcat实现故障自愈

2023-10-22 11:20

本文主要是介绍python脚本监控windows系统上的tomcat实现故障自愈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、通过访问url判断http访问状态不为200,则重启tomcat。
出于生产环境的安全性需要,这里不敢使用python的request模块去请求url,怕会出现问题。
2、调用的vbs文件,可查看 https://blog.csdn.net/qq_41842739/article/details/122965230?spm=1001.2014.3001.5501

#-*- coding:utf-8 -*-
#auth chenzelin
import string
import psutil
import sys
import time
import ossaveFilePath = "E:\\agent\\winAgent\\temp" #本地文件保存的路径,需要修改
returndate = time.strftime('%Y-%m-%d %H:%M:%S....',time.localtime())
proc_list=[] 
def get_pid(pname):for proc in psutil.process_iter():
#print(“pid-%d,name:%s” % (proc.pid,proc.name()))if proc.name() == pname:return proc.piddef cmd(cmd_name):os.system(cmd_name) def stop(a):time.sleep(a)  msg = os.popen('cscript //Nologo E:\\check-code\\netstatus.vbs').read()
#
start_cmd='net start tomcat8'
stop_cmd='net stop tomcat8'
stop_kill_cmd='taskkill /f /im tomcat8.exe'
tomcat_status = get_pid("tomcat8.exe")
procmmm=''
if msg.strip() != "200":procmmm += '【自愈结果】脚本执行时间:'+returndate+'1、当前进程号:'+ str(tomcat_status)+'....'if get_pid("tomcat8.exe") == None:procmmm += '2、服务挂停....'start1=cmd(start_cmd)if start1 != 0:procmmm += '3、服务已恢复....当前进程号:'+str(get_pid("tomcat8.exe"))      else:    procmmm += '2、服务挂死,正尝试自愈....'cmd(stop_cmd)    #先停止服务stop(30)procmmm += '3、开始清理残留....'rst = cmd(stop_kill_cmd) stop(30)if  rst != 0 :procmmm +='4、结束清理残留....'else:procmmm +='4、不存在残留,服务已停止....'   procmmm +='5、执行恢复操作....' start21 = cmd(start_cmd)if  start21 != 0 :tomcatB_status = get_pid("tomcat8.exe")procmmm += '6、自愈完成,当前进程号:'+str(tomcatB_status)else:procmmm +='6、自愈异常,需要人工干预'else:procmmm = '【执行结果】脚本执行时间:'+returndate+'200'#将脚本运行结果保存在指定txt文件中           
localPath = os.path.join(saveFilePath,'故障自愈信息.txt')
with open(localPath,'a') as f:                 f.write(procmmm+'\n')f.close

3、脚本执行结果
在这里插入图片描述
在这里插入图片描述
执行结果参考:
在这里插入图片描述
4、另外
net start tomcat8,指的是计算机管理–服务–服务名
在这里插入图片描述
taskkill /f /im tomcat8.exe 指的是强制停止任务管理器的进程
在这里插入图片描述

这篇关于python脚本监控windows系统上的tomcat实现故障自愈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/261104

相关文章

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Python使用python-can实现合并BLF文件

《Python使用python-can实现合并BLF文件》python-can库是Python生态中专注于CAN总线通信与数据处理的强大工具,本文将使用python-can为BLF文件合并提供高效灵活... 目录一、python-can 库:CAN 数据处理的利器二、BLF 文件合并核心代码解析1. 基础合

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

golang版本升级如何实现

《golang版本升级如何实现》:本文主要介绍golang版本升级如何实现问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录golanwww.chinasem.cng版本升级linux上golang版本升级删除golang旧版本安装golang最新版本总结gola

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四: