Linux使用shell脚本自动监控、重启tomcat

本文介绍了如何利用Linux的shell脚本监控Tomcat服务器,当Tomcat卡死时能自动进行重启。作者在CentOS 6.5环境下,结合1.7.0_5版的JDK和7.0.55.0版的Tomcat,编写了一段监控脚本,并设置了每1分钟执行一次。此外,还提供了crontab定时任务的写法、服务器状态码总结及ps与grep命令的使用教程链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近突然对shell感兴趣,如何自动监控tomcat,卡死自动重启?

参考大智若愚的Giraffe 博客 https://blog.youkuaiyun.com/huang930528/article/details/52292720,

稍作改动,写出了适合自己用的脚本。

系统环境:CentOS release 6.5 (Final)

jdk版本:1.7.0_5

tomcat版本:7.0.55.0

脚本内容:如下


# ---------------------------------------------------------------------- #
# shell自动监控重启tomcat脚本
# 思路:先检测tomcat进程是否存在,如果不存在就启动,
#		如果进程存在,并检测Web服务状态,如果返回时302就是正常,如果不是就重启。
#		注意:此处Web服务状态码,根据实际情况配置。
# 测试成功后把脚本加入到crontab。
# ---------------------------------------------------------------------- #

# 获取tomcat进程ID,可能存在多个ID,  grep -w 精确匹配,grep -v 反向筛选
TomcatID=$(ps -ef |grep oms |grep -w 'tomcat-oms'|grep -v 'grep'|awk '{print $2}')

# tomcat启动程序的实际路径
StartTomcat=/usr/local/tomcat-oms/bin/startup.sh

# 需监控的页面地址 
WebUrl=http://localhost/oms

# 日志输出路径
GetPageInfo=/mnt/logs/TomcatMonitor.Info
TomcatMonitorLog=/mnt/logs/TomcatMonitor.log

Monitor () {
  echo "[info] 开始监控地址:$WebUrl       [$(date +'%F %H:%M:%S')]"
  if [ -n "$TomcatID" ];then  # 这里判断TOMCAT进程是否存在
     echo "[info] 当前tomcat进程ID为:$TomcatID,继续检测页面..."
     # 检测是否启动成功(成功的话页面会返回状态"302")
     TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})
			 if [ $TomcatServiceCode -eq 302 ];then
				echo "[info] Web服务状态码为:$TomcatServiceCode,tomcat运行正常,Web服务状态正常!!"
			 else
				echo "[error] tomcat页面出错,请注意...Web服务状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"
				echo "[error] 页面访问出错,开始重启tomcat!"
				
				# 杀掉原tomcat进程
				for pid in $TomcatID; 
					do
						kill -9 $pid
					done;
					
				sleep 3
				$StartTomcat
			 fi
  else
     echo "[error]tomcat进程不存在!tomcat开始自动重启..."
     echo "[info]$StartTomcat,请稍候..."
     $StartTomcat
  fi
  echo "----------------------------------------------------------------------"
}

Monitor >> $TomcatMonitorLog


正常检测截图(我设置的是1分钟执行一次):




传送门:crontab 定时写法

传送门:web端服务器返回状态码总结

传送门:linux下ps命令 和 grep命令用法


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值