Tomcat监控脚本,关闭后自动重启的.bat文件,亲身经历可用

1,023 阅读3分钟

#万因皆有果,你的报应就是我。哈哈哈哈 ##公司的老旧项目,没太多时间重构,每月有那么几次服务宕机,思来想去写一个bat脚本监控下cat猫 ##原理比较傻瓜,但是还挺好用的,有需求的同行们可以借鉴下,有不妥之处希望批评指正

在这里插入图片描述
##一:实现原理 直接ping服务器的端口号,如果能够成功连接,则说明服务没有挂掉,如果返回连接失败这需要重启tomcat。看似low,实则好用啊! ##执行步骤 1.桌面右键新建文本文档--- 2.复制下面代码

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
rem 链接
set URL="http://localhost:8080/"    ##换成你自己需要监控的服务器及端口号
rem tomcat安装目录
set TOMCAT_HOME="D:\tomcat\tomcat"  ##注意路径换成你自己的tomcat安装路径
rem 关闭tomcat命令的路径
set CLOSE_CMD=%TOMCAT_HOME%\bin\shutdown.bat 
rem 启动tomcat命令的路径
set START_CMD=%TOMCAT_HOME%\bin\startup.bat
rem tomcat缓存目录
set TOMCAT_CACHE=%TOMCAT_HOME%\work 
rem 日志文件的路径
set LOG_PATH=%TOMCAT_HOME%\check.log     
rem 每次检测完后等待时间,再进行下一次检测,秒,若将程序部署到系统计划任务,可忽略
set TIME_WAIT=1

:loop
set httpcode=0
cd /c %TOMCAT_HOME%
echo %date% %time%

rem 连接2次,2次都连不上就算是挂机
echo %date% %time% >>%LOG_PATH%
for /l %%i in (1,1,2) do (
	echo %%i
	for /f "delims=" %%r in ('curl -sL -w "%%{http_code}" %URL% -o /dev/null') do (
		set httpcode=%%r
		if !httpcode!==200 (
			GOTO :OUTFOR
		)
	) 
)

:OUTFOR
echo %httpcode% >>%LOG_PATH%

if not %httpcode%==200 (
	echo close tomcat >>%LOG_PATH%
	call %CLOSE_CMD%
	timeout -t 5 >nul
	echo success to close tomcat >>%LOG_PATH% ##打印日志方便日后查询debug

	rd /S /Q %TOMCAT_CACHE%
	echo start tomcat >>%LOG_PATH%
	call %START_CMD%
	
	
	echo success to start tomcat>>%LOG_PATH%
) else (
	
	echo the tomcat run is ok >>%LOG_PATH%
)
timeout -t 3 >nul
timeout -t %TIME_WAIT% >nul
goto loop

3.点击保存,更改txt 为bat后缀文件名。

##注意事项 1.在windows服务器中,bat并不一定能直接运行,如我写的脚本中的 curl ,在原始的服务器中会报错"不是内部或外部命令,也不是可执行的程序",这是因为缺少curl的库包,可以在官网下载.官网网址:curl.haxx.se/download.ht… 我们根据不同系统的配置选择合适的安装包,这是我的选择

在这里插入图片描述
2.执行步骤: 1.先把bat脚本和压缩包弄到服务器上,如果你的windows服务器可以直接运行bat脚本没有报错的话,就把后面的省略掉,因为我的服务器不能直接运行脚本,还要配置环境 先配置CURL_HOME ,值是解压包的路径
在这里插入图片描述
在这里插入图片描述
2.配置名为CATALINA_HOME的配置,这个配置的值是tomcat目录
在这里插入图片描述
好了到这一步基本可以满处你的需求了。 下面是测试,当然建议在本地测试,由于环境配置原因可能无法成功,不建议直接在服务器上测试。 第一步打双击打开刚才编写了.bat文件 第二步 关闭已经启动的本地tomcat 心中倒数五个数5、4、3、2、1 成功启动 第三部 看下日志记录
!\[在这里插入图片描述\](https://img-blog.csdnimg.cn/20190925181404507.png
成功启动! 最后给个小姐姐打个广告,日用百货,休闲零食可以加她xinxin7527。