windows中 tomcat 服务检测/重启 bat 脚本
2017-09-03 17:25
836 查看
最近tomcat工程很不稳定,需要做一个自动检测并重启的程序,之前用python写了个程序,
但由于有多个工程,并分别部署在多个服务器上,还需要一个个的去配置python环境,有点麻烦,所以就想着直接写个 bat 脚本,
第一次自己动手写,边百度编写,发现 批处理 脚本功能还是很强大的
该脚本主要通过检测tomcat对应的工程链接是否已经正常启动来重启tomcat。
有失败重置机制(这里设置了十次),若连续请求10次都失败了,则关闭tomcat并重启tomcat,
(若当前tomcat未启动,关闭会报错,但不会影响程序往下运行,
也有通过根据窗口名来关闭tomcat的,但是当单个服务器部署多个tomcat时,需要去catalina.bat 中修改tomcat窗口名,本人这里觉得麻烦就没做这一步。
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
rem 链接
set URL="http://localhost:8080/"
rem tomcat目录
set TOMCAT_HOME="D:\Tools\apache-tomcat-8.5.12"
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=5
:loop
set httpcode=0
cd /d %TOMCAT_HOME%
echo %date% %time%
echo 'begin checking tomcat'
echo %date% %time% >>%LOG_PATH%
for /l %%i in (1,1,10) 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%
rd /S /Q %TOMCAT_CACHE%
echo start tomcat >>%LOG_PATH%
call %START_CMD%
echo success to start tomcat
echo success to start tomcat >>%LOG_PATH%
) else (
echo the tomcat run is ok
echo the tomcat run is ok >>%LOG_PATH%
)
timeout -t 3 >nul
rem 若将脚本程序部署到系统计划程序中,将以下代码可注释
timeout -t %TIME_WAIT% >nul
goto loop
但由于有多个工程,并分别部署在多个服务器上,还需要一个个的去配置python环境,有点麻烦,所以就想着直接写个 bat 脚本,
第一次自己动手写,边百度编写,发现 批处理 脚本功能还是很强大的
该脚本主要通过检测tomcat对应的工程链接是否已经正常启动来重启tomcat。
有失败重置机制(这里设置了十次),若连续请求10次都失败了,则关闭tomcat并重启tomcat,
(若当前tomcat未启动,关闭会报错,但不会影响程序往下运行,
也有通过根据窗口名来关闭tomcat的,但是当单个服务器部署多个tomcat时,需要去catalina.bat 中修改tomcat窗口名,本人这里觉得麻烦就没做这一步。
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
rem 链接
set URL="http://localhost:8080/"
rem tomcat目录
set TOMCAT_HOME="D:\Tools\apache-tomcat-8.5.12"
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=5
:loop
set httpcode=0
cd /d %TOMCAT_HOME%
echo %date% %time%
echo 'begin checking tomcat'
echo %date% %time% >>%LOG_PATH%
for /l %%i in (1,1,10) 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%
rd /S /Q %TOMCAT_CACHE%
echo start tomcat >>%LOG_PATH%
call %START_CMD%
echo success to start tomcat
echo success to start tomcat >>%LOG_PATH%
) else (
echo the tomcat run is ok
echo the tomcat run is ok >>%LOG_PATH%
)
timeout -t 3 >nul
rem 若将脚本程序部署到系统计划程序中,将以下代码可注释
timeout -t %TIME_WAIT% >nul
goto loop
相关文章推荐
- windows使用vbs脚本监控tomcat,自动重启服务
- windows bat脚本 脚本实现复制工程文件到客户电脑,安装tomcat服务,还原mysql数据库文件,实现一键启动网页工程
- Linux 中 tomcat 服务检测/重启 sh 脚本
- windows下 直接点击startup.bat 启动tomcat服务
- 检测tomcat服务状态,自动重启Tomcat
- linux脚本(shell)之tomcat服务定时重启任务
- 【windows下】bat重启Tomcat,写日志、调用另一个Bat
- windows下检测网站是否正常运行并自动重启服务
- 检测tomcat服务状态,并能自动重启的代码
- windows下自动上传war到Linux服务器,自动部署,自动重启Tomcat的系列脚本
- Linux下重启多个 tomcat 服务的脚本(推荐)
- shell脚本:定时重启tomcat服务
- Tomcat自动检测和重启脚本(Linux)
- windows bat脚本监控服务
- 检测tomcat服务状态,并能自动重启的代码
- Windows MySQL BAT脚本控制启动、停止、重启
- shell脚本监控tomcat服务运行状态,服务关闭后进行重启
- tomcat重启脚本windows
- windows下脚本检测tomcat是否启动,没有启动则启动
- Windows下杀掉进程后重启的bat脚本