LINUX下使用Shell自动监控tomcat并且执行重启操作

释放双眼,带上耳机,听听看~!

遇到的问题1:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined(没有配环境变量)

问题2:判断TOMCAT进程是否存在 if [ -n “$TomcatID” ];then

问题3:bash: ./cmd.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录
原因是:MACOS WINDOWS LINUX下的换行符,
造成在linux下无法识别正确的换行符。
解决办法: sed -i ‘s/\r$//’ monitor.sh

脚本如下:

#!/bin/sh

自动监控tomcat脚本并且执行重启操作

#定义环境变量 (要改成自己的jdk相关地址)


1
2
3
4
5
6
1PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/jdk1.8.0_201/bin
2export JAVA_HOME=/usr/local/jdk/jdk1.8.0_201
3export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
4export PATH=$PATH:$JAVA_HOME/bin
5
6

获取tomcat进程ID(其中[grep -w ‘tomcat’]代码中的tomcat需要替换为你的tomcat文件夹名)


1
2
3
1TomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v 'grep'|awk '{print $2}')
2
3

tomcat启动程序(这里注意tomcat实际安装的路径)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
1StartTomcat=/usr/local/apache-tomcat-8.5.39/bin/startup.sh
2TomcatCache=/usr/local/apache-tomcat-8.5.39/work
3
4#定义要监控的页面地址
5WebUrl=https://ip:8080/
6
7#日志输出
8GetPageInfo=/tmp/TomcatMonitor.Info
9TomcatMonitorLog=/tmp/TomcatMonitor.log
10
11
12Monitor () {
13  echo "[info] 开始监控地址:$WebUrl       [$(date +'%F %H:%M:%S')]"
14   if [ -n "$TomcatID" ];then   # 这里判断TOMCAT进程是否存在
15     echo "[info] 当前tomcat进程ID为:$TomcatID,继续检测页面..."
16     # 检测是否启动成功(成功的话页面会返回状态"200")
17     TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})
18   if [ $TomcatServiceCode -eq 200 ];then  
19     echo "[info]返回码为$TomcatServiceCode,tomcat启动成功,测试正常......"  
20  else  
21     echo "[error]tomcat出错,请注意......状态码为$TomcatServiceCode,错误日志已输出到$TomcatMonitorLog[error],开始重启tomcat"  
22   #杀掉原tomcat进程  
23   kill -9 $TomcatID    
24  sleep 3  
25   #清理tomcat缓存  
26  rm -rf $TomcatCache    
27  $StartTomcat  
28  fi  
29 else  
30   echo "[error]tomcat进程不存在!tomcat开始自动重启......[info]$StartTomcat,请稍候......"  
31  rm -rf $TomcatCache  
32  $StartTomcat  
33  fi  
34 echo "编写完成"  
35 }  
36
37Monitor>>$TomcatMonitorLog`在这里插入代码片`
38
39

LINUX下使用Shell自动监控tomcat并且执行重启操作

给TA打赏
共{{data.count}}人
人已打赏
安全技术安全运维

Windows服务器如何发现被黑

2018-5-20 12:24:31

安全技术

详解Node.js API系列 Crypto加密模块(1)

2021-12-21 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索