首页 > 其他分享 >bat 自动重启 Tomcat

bat 自动重启 Tomcat

时间:2023-10-29 16:59:03浏览次数:35  
标签:bat set Tomcat tomcat %% 重启 echo rem TOMCAT

脚本来自 Windows 中 Tomcat 无故宕机,如何自动重启 Tomcat,这里给脚本添加注释

@echo off
rem 启用延迟变量扩展(delayed variable expansion)
SETLOCAL ENABLEDELAYEDEXPANSION

rem 链接
set URL="http://localhost:8008/"
rem tomcat目录
set TOMCAT_HOME="D:\Program Files\apache-tomcat-9.0.50"
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%\temp
rem 日志文件的路径
set LOG_PATH=%TOMCAT_HOME%\check.log
rem 每次检测完后等待时间,再进行下一次检测,秒,若将程序部署到系统计划任务,可忽略
set TIME_WAIT=5

rem 自定义标签,和 goto 结合使用
:loop
set httpcode=0
rem 切换到tomcat目录
	rem /d 表示要切换到一个新的目录,而且这个目录可以位于不同的驱动器
cd /d %TOMCAT_HOME%
echo %date% %time%
echo 'begin checking tomcat'

echo %date% %time% >>%LOG_PATH%
rem 创建一个循环,从1到10的范围中遍历每个数字
	rem /l 表示要创建一个数字范围的循环
	rem %%i 循环变量,用于在每次迭代中存储循环的当前值
	rem in (1,1,10) 表示从1开始,以1为步长,一直循环到10
for /l %%i in (1,1,10) do (
	echo %%i
	rem 执行 curl 命令来获取指定URL的HTTP响应代码
		rem /f 表示要使用文件或命令的输出作为循环变量
		rem "delims=" 这是 for 命令的参数,指定分隔符(delimiters)。在这个例子中,delims= 表示没有分隔符,因此整个输出行将被视为一个整体
		rem 'curl -sL -w "%%{http_code}" %URL% -o /dev/null' 用于获取指定URL的HTTP响应代码
			rem curl 是一个用于发起HTTP请求的命令行工具,-sL 参数表示安静模式并且跟踪重定向
			rem -w "%%{http_code}" 表示使用 -w 参数指定输出格式,返回HTTP响应代码
			rem %URL% 是要请求的URL地址,-o /dev/null 表示将响应的主体部分输出到/dev/null(相当于丢弃响应主体)
	for /f "delims=" %%r in ('curl -sL -w "%%{http_code}" %URL% -o /dev/null') do (
		set httpcode=%%r
		rem ! 是用于启用延迟变量扩展(delayed variable expansion)的标记
		if !httpcode!==200 (
			goto :OUTFOR
		)
	)
)

:OUTFOR
echo %httpcode% >>%LOG_PATH%

if not %httpcode%==200 (
	echo close tomcat >>%LOG_PATH%
	call %CLOSE_CMD%
	rem 创建一个5秒的等待时间
		rem timeout 创建一个等待指定时间的暂停
		rem -t 5 等待5秒
		rem >nul > 表示将命令的输出重定向到指定位置,nul 是一个特殊的设备文件,用于丢弃命令的输出,也就是不显示命令的输出
	timeout -t 5 >nul
	echo success to close tomcat >>%LOG_PATH%

	rem 删除缓存目录
		rem rd "remove directory"的缩写,用于删除目录(文件夹)
		rem /S 递归删除整个目录树
		rem /Q 表示"quiet",即不显示任何确认信息或提示)
	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

标签:bat,set,Tomcat,tomcat,%%,重启,echo,rem,TOMCAT
From: https://www.cnblogs.com/Higurashi-kagome/p/17796020.html

相关文章

  • Mybatis sql日志在线转换工具
     Mybatissql日志在线转换工具 有时候在linux服务器上复制出来的SQL,带问号,不好转化成正常的SQL,网上搜了一下也没发现有在线的转换工具,刚好自己有个轻语音乐网站,有域名和服务器,所以想着把这个页面集成上去,也方便自己日常使用。 Mybatissql日志在线转换工具地址:http://linl......
  • myBatis
    myBatismyBatis框架也被称之为OBM(面向对象映射)框架。ORMjiu就是一种解决面向对象与关系型数据库中数据不匹配的技术,它通过藐视java对象与数据库之间的映射关系,自动将java应用程序中的对象看持久化到关系型数据库的表中持久化与持久化层持久化:就是把数据保存到可掉电式岑楚设......
  • PAT 甲级【1013 Battle Over Cities】
    本题就是dfs.连通图个数-2;但是java慢,最后一个case超时importjava.io.*;importjava.util.HashSet;importjava.util.Set;publicclassMain{@SuppressWarnings("uncheck")publicstaticvoidmain(String[]args)throwsIOException{StreamToken......
  • 关于学习Mybatis-plus的认识
    1.实体类的类名和属性尽量一致,如果不一致需要用注解进行指定。2.mybatis-plus是把实体类的类名直接转换成小写到数据库查找,所以需要@TableName(value="表名")来指定表的名字进行查询@TableName("sys_user")publicclassUser{privateLongid;privateStringn......
  • Springboot+Mybatis+Mybatisplus 框架中增加自定义分页插件和sql 占位符修改插件
    一、Springboot简介springboot是当下最流行的web框架,SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,让这些框架集成在一起变得更加简单,简化了我......
  • 重启服务 odoo
    重启服务/etc/init.d/postgresqlrestartsudoservicepostgresqlstopsudoservicepostgresqlstartsudoserviceodoo16stopsudoserviceodoo16startsudosystemctlstopnginxsudosystemctlstartnginx##设置开机自启动sudosystemctlenablepostgresql登陆pgsudo-......
  • 【Azure Batch】在中国区批处理服务(Mooncake Batch Account)上实验自动池(Auto Pool)
    问题描述在AzureBatch的介绍文档中,提出了自动池的概念,它可以在任务完成后,自动删除Pool资源,详细介绍:https://docs.azure.cn/zh-cn/batch/nodes-and-pools#autopools& https://learn.microsoft.com/zh-cn/rest/api/batchservice/job/add?tabs=HTTP#autopoolspecification自动池是......
  • ?Mybatis多表查询(1:1、1:N、N:N),MP多表查询(自定义SQL)
    Mybatis多表关联查询Gitee地址:https://gitee.com/zhang-zhixi/mybatis-tables-query.git数据表:oracleCREATETABLE"T_ORDER"("ID"NUMBERNOTNULL,"F_ORDER_TIME"DATE,"F_TOTAL"VARCHAR2(255BYTE),"F_USER_ID"NU......
  • 记录mybatis的一点小坑(Invalid bound statement (not found))
    今天学习SSM的时候出的一个小错,写测试程序的时候mybatis一直报bindingexception Invalidboundstatement(notfound): xxx语句。我以为是xxx语句出问题了。一直找。检查了namespace、statementid、mapperScanner啥的,都没发现异常。回去翻笔记,原来是xml的路径错了。 ......
  • podman/docker重启后自动运行容器
    背景今天发现云主机oom重启之后podman的容器没有自动运行,大概看了一下,是因为Podman不试用Daemon守护进城,所以podman启动后不自动启动容器。这里试用systemd进行自启动管理。方案可以使用podmangeneratesystemd生成并管理生成systemd文件#podmangenerate......