项目背景:公司接手一个状态不稳定,性能比较差,一天几次挂,还没时间优化,就弄一个脚本用来检测项目是否在线,如果不在线就重启,该脚本实现的功能是:每五分钟监听端口是否在线,连接端口十次,有一次连不上就判定为服务挂了,关掉tomcat,再启动
1.脚本内容
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
rem 链接
set URL="http://localhost:8080/"
rem tomcat安装目录
set TOMCAT_HOME="C:\Users\wilson\Downloads\apache-tomcat-7.0.88-windows-x64\apache-tomcat-7.0.88"
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=300
:loop
set httpcode=0
cd /c %TOMCAT_HOME%
echo %date% %time%
echo 'begin checking tomcat'
rem 连接十次,一次连不上就算是挂机
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% >>