Linux下实现监测tomcat是否宕机/停止并重新启动功能实现!
Linux下实现监测tomcat是否宕机/停止并重新启动功能实现!
前言
一、安装crontab
1.确认crontab是否安装
2.安装crontab
3.使用crontab
4.将crontab加入至开机自启
二、编辑monitor.sh脚本
1.monitor.sh脚本模板
2.使用crontab来完成定时任务
前言
首先我们要知道实现该功能需要哪些准备工作
一、安装crontab
Linux上的crontab是一个定时任务的工具,可以帮助你实现定时循环执行某一个脚本的功能
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表达式可以去百度在线生成)
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
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需99元,即可下载本站文章涉及的文件和软件。
共有 0 条评论