java监控其他服务器运行状态_windows服务器监控多个tomcat运行状态
发布日期:2021-06-24 16:15:34 浏览次数:4 分类:技术文章

本文共 2396 字,大约阅读时间需要 7 分钟。

第一步,修改tomcat默认的进程名

因为所有的tomcat项目的进程名默认都叫java.exe,所以需要修改tomcat容器bin目录下的setclasspath.bat。注释掉:(在set前加上:冒号就行)

set _RUNJAVA="%JRE_HOME%\bin\java.exe"

这句,改成

copy "%JAVA_HOME%\bin\java.exe" "%JAVA_HOME%\bin\xxxx.exe"

set _RUNJAVA="%JAVA_HOME%\bin\xxxx"

这样,重启tomcat项目,在 任务管理器 中就会看到更改后的进程名。

第二步,编写bat脚本

@echo off

rem setlocal是批处理本地化的一种操作,在执行setlocal之后所做的环境改动只限于批处理文件

rem ENABLEDELAYEDEXPANSION 启用变量延迟,直到出现匹配的endlocal命令

SETLOCAL ENABLEDELAYEDEXPANSION

rem rem的意思是注释

rem 链接

set URL="http://xx.xx.xx.xx:808x/xxxx/xxxx.jsp"rem tomcat目录

set TOMCAT_HOME="C:\xxxx-tomcat-8.5.31"rem 关闭tomcat命令的路径(xxx.exe就是第一步中设置的进程名)

set CLOSE_CMD=taskkill /f /t /im xxxx.exe

rem 启动tomcat命令的路径

set START_CMD=%TOMCAT_HOME%\bin\startup.bat

rem tomcat缓存目录

set TOMCAT_CACHE=%TOMCAT_HOME%\work

rem 日志文件的路径

set LOG_PATH=%TOMCAT_HOME%\logs\check.log

rem 每次检测完后等待时间,再进行下一次检测,若将程序部署到系统计划任务,可忽略

rem set TIME_WAIT=30rem echo string:将字符串显示在屏幕中

rem :loop 和下面的goto组合成循环

:loop

rem 设置变量http状态码

set httpcode=0rem 打开tomcat目录

cd/d %TOMCAT_HOME%rem 打印时间

echo%date% %time%rem 在屏幕上打印执行状态

echo 'beginchecking tomcat'

rem 将记录保存在日志文件中

echo%date% %time% >>%LOG_PATH%rem 循环

remFOR [参数] %%变量名 IN (相关文件或命令) DO执行的命令

rem 其中参数有/d /l /r /f

rem 参数/d (参数只能显示当前目录下的目录名字)

rem 参数/R (搜索指定路径及所有子目录中与set相符合的所有文件)

rem 参数/L (该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step)

rem 参数/F (使用文件解析来处理命令输出、字符串及文件内容。)

rem (相关文件或命令)指定一个或一组文件。可以使用通配符for /l %%i in (1,1,10) do(

echo%%i

rem 借助工具获得项目的状态头(curl工具的安装会在下面提及)for /f "delims=" %%r in ('curl -sL -w "%%{http_code}" %URL% -o /dev/null') do(

rem 将变量r的值赋值给httpcode

set httpcode=%%rif !httpcode!==200(

GOTO :OUTFOR

)

)

)

:OUTFOR

echo%httpcode% >>%LOG_PATH%

if not %httpcode%==200(call%NOTIFICATION_MESS%echo close tomcat>>%LOG_PATH%rem 关闭tomcat call在批处理中用于调用另一个批处理文件,start用于执行一些外部程序

start%CLOSE_CMD%timeout-t 10 >nul

rem 记录日志

echo success to close tomcat>>%LOG_PATH%rem 清除tomcatwork空间/s意思是不需要确认的删除 /Q是清除目录及子目录

rd/S /Q %TOMCAT_CACHE%echo start tomcat>>%LOG_PATH%rem 开启tomcat,执行bat文件

call%START_CMD%echo success to start tomcat

echo success to start tomcat>>%LOG_PATH%)else(

echo the tomcat is running

echo the tomcat is running>>%LOG_PATH%)

timeout-t 3 >nul

rem 若将脚本程序部署到系统计划程序中,将以下代码可注释

rem timeout-t %TIME_WAIT% >nul

rem goto loop

第三步,设置windows计划任务。

如何设置计划任务,可以自行百度。贴一个我设置的。

00ce5ea1ca1dd17f31ae0431d79aef6a.png

65e93473f8bc4b0bf11057d27d53560d.png

1966c0d5b185496df8463422fa763a7a.png

程序或脚本中,选择第二步创建的bat脚本。这样每隔5分钟,系统调用一次bat脚本,bat判断tomcat是否还在运行。如果10秒钟之后,访问bat中的url失败,tomcat项目将会自动启动。

如果有多个tomcat需要此类操作,只需要将每个tomcat项目按照上面三步操作一遍,最终实现监控多个tomcat,避免项目自动关闭的问题。

转载地址:https://blog.csdn.net/weixin_33758343/article/details/114607029 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java给学生按总成绩排名_java - 输入学生成绩,取它们的平均值,然后通过排名等级的学生 - SO中文参考 - www.soinside.com...
下一篇:java httpclient 工具_spring整合httpClient工具类

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月12日 22时15分50秒