批处理监控Tomcat服务器

针对公司服务器偶尔宕机的问题,本文介绍了如何创建批处理脚本来监控Tomcat服务器状态。通过在批处理文件中利用curl工具检查服务器HTTP状态,当服务器宕机时可自动执行重启操作。提供了无需配置到任务管理器的批处理代码示例。

最近公司服务器有时会意外宕机,故提出需求,需要当服务器宕机时,自动重启服务器。

两个版本的批处理,一个需要配置到任务管理器中,一个不需要,因这两个批处理大部分指令代码相同,故只给出一个版本的。

版本一:(不需要配置到任务管理器中)

第一步:编写test.txt,其中内容为所开启服务器的绝对地址和端口号

第二步:编写批处理代码:

@echo off

rem 每次检测完后等待时间,再进行下一次检测
set TIME_WAIT=5
rem CURL配置路径
set CRUL_HOME="E:\soft\curl-7.63.0\I386"

	for /f "usebackq tokens=1-2" %%a in ("E:\zhen\工作\批处理\pro\aa bb\test.txt") do (
		rem tomcat目录
		set TOMCAT_HOME=%%a
		rem Tomcat端口号
		set port=%%b
		
		setlocal ENABLEDELAYEDEXPANSION
		rem 测试链接
		set URL="localhost:!port!/test/demo.jsp"
		rem 关闭tomcat命令的路径
		set CLOSE_CMD=!TOMCAT_HOME!\bin\shutdown.bat
		rem 开启tomcat命令的路径
		set START_CMD=!TOMCAT_HOME!\bin\startup.bat
		rem 日志文件的路径  
		set LOG_PATH="E:\zhen\工作\批处理\pro\log\!port!.log"
		setlocal DISABLEDELAYEDEXPANSION
		
		call :loop
		timeout -t %TIME_WAIT% -nobreak >nul
	)
	goto :eof

:loop
echo %date% %time:~0,8%正在检测%port%服务器 >>%LOG_PATH%
rem 进入curl的目录中
cd %CRUL_HOME%

rem 获取URL的状态码
for /f "delims=" %%r in ('curl -sL -w "%%{http_code}" %URL% -o /dev/null') do (

	if %%r neq 200 (
		echo 服务器异常,状态码为:%%r >>%LOG_PATH%
	    echo 正在关闭服务器...... >>%LOG_PATH%
		rem 进入Tomcat目录
		cd %TOMCAT_HOME%
	    call %CLOSE_CMD%
	    timeout -t 3 -nobreak >nul
	    echo 服务器已关闭 >>%LOG_PATH%
	    timeout -t 1 -nobreak >nul
	    echo 正在重启服务器....... >>%LOG_PATH%
	    call %START_CMD%  
	    timeout -t 5 -nobreak >nul
		
		rem 进入curl的目录中
		cd %CRUL_HOME%
		rem 判断服务器是否启动成功
		for /f "delims=" %%r in ('curl -sL -w "%%{http_code}" %URL% -o /dev/null') do (
			
			if %%r neq 200 (
				echo 服务器启动失败 >>%LOG_PATH%
			) else (
				echo 服务器启动成功 >>%LOG_PATH%
			)
		)
	) else ( 
		echo 服务器正常运行中>>%LOG_PATH% 
	)
)

   注:在批处理中,用到了curl工具来获取http的状态头,故需要先安装curl工具,方可运行此批处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值