​​Linux下实现监测tomcat是否宕机/停止并重新启动功能实现!

​​Linux下实现监测tomcat是否宕机/停止并重新启动功能实现!

前言

一、安装crontab

1.确认crontab是否安装

2.安装crontab

3.使用crontab

4.将crontab加入至开机自启

二、编辑monitor.sh脚本

1.monitor.sh脚本模板

2.使用crontab来完成定时任务

前言

首先我们要知道实现该功能需要哪些准备工作

一、安装crontab

Linux上的crontab是一个定时任务的工具,可以帮助你实现定时循环执行某一个脚本的功能

006fRELkly1go4ju5jj8uj30h806z0ut

1.确认crontab是否安装

输入命令行 crontab -l

如果报 “command not found” ,就说明该crontab服务没有安装 如果报 “no crontab for root” ,就说明已经安装crontab服务了, 不用再安装了

2.安装crontab

依次输入以下命令

yum install vixie-cron

yum install crontabs

3.使用crontab

说一下常用的几个命令

service crontab start 启动crontab服务

service crontab stop 停止crontab服务

service crontab reload 重启crontab服务

service crontab status 查看crontab服务的状态

crontab -e 编辑定时任务,这里给个模板,可以做一下修改:

*/1 * * * * /tmp/xxx/xxx.sh (这个代表每一分钟执行一次,后面的是脚本的路径,cron表达式可以去百度在线生成)

006fRELkly1go4juzhg8jj30ey0ce74l

4.将crontab加入至开机自启

使用命令ntsysv,键盘上下移动选择,按空格选中或取消,按Tab可以切换光标到列表和确认取消上注意,这里如果有tomcat配置的自启在保存后会自动变为取消,所以保存后需要去再设置一下tomcat的自启,用命令chkconfig --add 脚本名称 来完成tomcat自启的配置

二、编辑monitor.sh脚本

1.monitor.sh脚本模板

代码如下(示例):

#!/bin/sh

#tomcat监控脚本,记录tomcat运行状况,并在系统出现异常的时候重启服务

# 获取线程ID,执行该命令,可以得到tomcat线程,grep -w用于执行单词搜索

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

. /etc/profile #此行必不可少,若少了,tomcat无法自动重启

# tomcat启动的脚本文件,一般位于tomcat服务器bin目录下面

StartTomcat=/usr/tomcat/xxx/bin/startup.sh

# 项目的一个方法,该方法只要能够请求到,则返回成功

WebUrl=http://localhost:8080/xxx

#tomcatwork空间

TomcatCache=/usr/tomcat/xxx/work

# 日志输出地址

GetPageInfo=/dev/null

TomcatMonitorLog=/tmp/TomcatMonitor.log

#监控的代码

Monitor

{

#输出到日志文件,并将时间保存

echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"

#查看tomcatID,如果存在,则进入处理逻辑,如果不存在,则重启tomcat

if [ -n "$TomcatID" ];then

#记录日志

echo "[info]tomcat进程ID为:$TomcatID."

# 请求项目,$WebUrl是相应的请求地址,该命令执行之后会得到相应的线程ID

TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})

#系统运行正常

if [ $TomcatServiceCode -eq 200 ];then

echo "[info]返回码为$TomcatServiceCode,tomcat运行正常."

else

#系统运行异常

echo "[error]访问出错,状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"

echo "[error]开始重启tomcat"

#杀掉相应的进程

#kill -9 $TomcatID # 杀掉原tomcat进程

for id in $TomcatID

do

kill -9 $id # 杀掉原tomcat进程

echo "killed $id"

done

sleep 1

#清理work空间

rm -rf $TomcatCache # 清理tomcat缓存

#重启

$StartTomcat

echo "[info] tomcat开始重启."

fi

else

echo "[error]进程不存在!tomcat自动重启...$TomcatID"

echo "[info]$StartTomcat,请稍候......"

#rm -rf $TomcatCache

$StartTomcat

fi

echo "------------------------------"

}

Monitor>>$TomcatMonitorLog

脚本是我整合了网上一些零散的脚本并修改的,如有不对欢迎指出,一起学习,一起进步~

2.使用crontab来完成定时任务

这里可以先执行一下脚本看看有没有作用,然后用上述的crontab -e的命令将脚本加入进去,然后执行service crontab reload,接着去看看日志输出,看看有没有完成功能!

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

2022021703525891-28

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需99元,即可下载本站文章涉及的文件和软件。

文章版权声明 1、本网站名称:Excelbook
2、本站永久网址:http://www.excelbook.cn
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长王小琥进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

THE END
分享
二维码
< <上一篇
下一篇>>