📘:本文主要内容为:在Linux系统下,利用脚本对tomcat的运行状态进行实时监控。
📕:可以不用通过人为检测控制tomcat服务器的启动,一般是在集成环境下进行使用。
正文内容
创建脚本文件
在Linux根目录下创建一个 `/datas/monitor.sh` 脚本文件 【文件目录自定即可】
#脚本内容如下:
#!/bin/sh
# 获取tomcat进程ID
TomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v 'grep'|awk '{print $2}')
# tomcat启动程序,/datas/apache-tomcat-8.5.84/bin/startup.sh为tomcat的启动脚本
StartTomcat=/datas/apache-tomcat-8.5.84/bin/startup.sh
TomcatCache=/datas/apache-tomcat-8.5.84/work
# 启动脚本打印的日志
TomcatMonitorLog=/tmp/TomcatMonitor.log
Monitor()
{
echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
if [ $TomcatID ];then #这里判断Tomcat进程是否存在
echo "[info]tomcat正在运行,进程ID为:$TomcatID"
else
echo "[error]tomcat进程不存在!tomcat开始自动重启..."
echo "[info]$StartTomcat,请稍候..."
rm -rf $TomcatCache
$StartTomcat
fi
echo "-------------end------------"
}
Monitor>>$TomcatMonitorLog
❗❗❗❗❗❗❗❗❗❗
在给StartTomcat和TomcatCache这两个属性设置文件路径的时候一定要和本机上的tomcat路径保持一致,不然会出现脚本运行之后没有反应的情况。还要注意自己电脑上软件的版本号!!
给tomcat的某个配置文件追加内容
修改 `$TOMCAT_HOME/bin/setclasspath.sh` 文件,在文件的开始添加 `JAVA_HOME` 和 `JRE_HOME`
⏩该路径可以参考配置JAVA环境变量时候的存放路径。[vi /etc/profile]来查看jdk的环境变量配置,同时也要确保版本和自己电脑上面的保持一致
#在tomcat->bin->setclasspath.sh文件中设置jdk的环境变量
export JAVA_HOME=/datas/jdk1.2.0_60
export JRE_HOME=/datas/jdk1.2.0_60/jre
添加系统定时调度
修改 `/etc/crontab` 文件,在文件末尾添加如下内容:
#编辑系统文件(没有安装vim指令,vi指令也可以)
vim /etc/crontab
#添加内容如下:crontab命令,表示每分钟执行一次脚本
*/1 * * * * root /datas/monitor.sh
查看并且修改文件权限
给该文件添加权限,到最高(详细内容可以去了解一下chmod指令)
chmod 777 /datas/monitor.sh
查看脚本,执行清空
#查看脚本执行清空(在第一步新建文件的时候就已经设置过日志的路径了)
tail -f /tmp/TomcatMonitor.log
#重启Linux定时调度,如果运行上述指令后,没有日志出现,可以运行下面的指令
systemctl restart crond
#也可以通过自己手动开启脚本(上述执行过后都没问题了,就不用执行此指令了)
/datas/monitor.sh run
结果展示
每过一分钟都会输出一条日志,
可以再打开一个会话窗口,通过进程ID来故意杀死tomcat进程,观察日志文件是否会输出重新启动服务的日志。杀死进程:
#表示强行杀死进程 【[PID] 表示想要杀死的进程ID】
kill -9 [PID]
可以通过ip+端口号的方式访问tomcat官网(访问之前确认自己的防火墙是关闭状态)
上述测试都完成,及表示检测成功。
效果图展示如下:
🙏本次文章到此结束啦~欢迎观众老爷子指正
📚希望大家可以在评论区交流学习鸭~~~