博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 监控tomcat,自动重启tomcat服务
阅读量:6270 次
发布时间:2019-06-22

本文共 2794 字,大约阅读时间需要 9 分钟。

hot3.png

#!/bin/sh# 获取tomcat进程ID  /usr/local/tomcat_ds_apiTomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat_ds_api'|grep -v 'grep'|awk '{print $2}')  # tomcat启动程序(这里注意tomcat实际安装的路径)  StartTomcat=/usr/local/tomcat_ds_api/bin/startup.sh # 定义要监控的页面地址  WebUrl=https://xx.com/test.txt# 日志输出 TomcatMonitorLog=/tmp/TomcatMonitor.log  Monitor() {    echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"    if [[ $TomcatID ]];then # 这里判断TOMCAT进程是否存在      echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."      # 检测是否启动成功(成功的话页面会返回状态"200")      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]tomcat页面出错,请注意......状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"          echo "[error]页面访问出错,开始重启tomcat"          #kill -9 $TomcatID  # 杀掉原tomcat进程          #sleep 3          #rm -rf $TomcatCache # 清理tomcat缓存          #$StartTomcat      fi    else      echo "[error]tomcat进程不存在!tomcat开始自动重启..."      echo "[info]$StartTomcat,请稍候......"      #rm -rf $TomcatCache      $StartTomcat    fi    echo "------------------------------"  }  Monitor>>$TomcatMonitorLog

将脚本保存为monitor.sh文件, 然后给脚本执行权限

chmod a+x monitor.sh

如果出现/bin/sh^M: bad interpreter: No such file or directory。错误, 可以你的脚本文件格式不正确, 解决方案如下

利用如下命令查看文件格式

:set ff 或 :set fileformat

可以看到如下信息

fileformat=dos 或 fileformat=unix

利用如下命令修改文件格式

:set ff=unix 或 :set fileformat=unix :wq

最后再执行文件

启动脚本, 使用crontab 执行定时任务

./monitor.sh

查看日志文件

cd tmptail -f TomcatMonitor.log[info]开始监控tomcat...[2016-05-19 20:43:01][info]当前tomcat进程ID为:19491,继续检测页面...[info]页面返回码为200,tomcat启动成功,测试页面正常......

出现上面的信息证明脚本已经在监控了, 但是我们只是手动执行了一下, 我们需要的是实时的监控我们的服务, 下面我们使用crontab 来执行我们的定时任务.

安装crontab

使用yum安装crontab服务

yum install vixie-cron

安装成功, 看一下常用命令

/sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond restart //重启服务/sbin/service crond reload //重新载入配置查看crontab服务状态:service crond status手动启动crontab服务:service crond start查看crontab服务是否已设置为开机启动,执行命令:ntsysv在CentOS系统中加入开机自动启动:chkconfig --level 35 crond on

添加定时执行任务

*/1 * * * * /work/monitor.sh

1分钟执行一次. 更多配置可以访问 

测试

脚本建立好了, 定时任务也创建了, 接下来我们测试一把. 我们打开log文件观察.

关闭tomcat服务

ps -ef | grep javakill -9 pid

查看log

tail -f TomcatMonitor.log[info]开始监控tomcat...[2016-05-19 21:02:01][info]当前tomcat进程ID为:19491,继续检测页面...[info]页面返回码为200,tomcat启动成功,测试页面正常......------------------------------[info]开始监控tomcat...[2016-05-19 21:03:01][error]tomcat进程不存在!tomcat开始自动重启...[info]/usr/local/tomcat_ds_api/bin/startup.sh,请稍候......Tomcat started.------------------------------[info]开始监控tomcat...[2016-05-19 21:04:01][info]当前tomcat进程ID为:24948,继续检测页面...[info]页面返回码为200,tomcat启动成功,测试页面正常......------------------------------

 

 

转载于:https://my.oschina.net/u/1024107/blog/752729

你可能感兴趣的文章
Everything 本地磁盘文件搜索工具下载!
查看>>
Python dict(字典) 详细总结
查看>>
RPF(Reverse Path Forwarding 反向路径转发)技术
查看>>
2016年收到的第一件礼物,被评上微软全球最有价值专家MVP(一)
查看>>
2016中国VR开发者论坛第一期
查看>>
Hyper-V 2016 系列教程5 Hyper-V 服务器基本属性
查看>>
北京、天津工厂自动监测数据爬取
查看>>
第一个python程序简单加法计算器
查看>>
在CentOS下安装Tomcat8
查看>>
Weblogic classloader分析
查看>>
做技术做软件-----如何才能拿到上万的月薪
查看>>
linux 查看当前路径命令:pwd
查看>>
At.js – 用于 Web 应用程序的自动完成库
查看>>
[Android Pro] Android权限设置android.permission完整列表
查看>>
如何对抗硬件断点--- 调试寄存器
查看>>
mybatis学习
查看>>
从不同层面看cocos2d-x
查看>>
Struts2技术详解
查看>>
MFC应用程序向导生成的文件
查看>>
Oracle体系结构之oracle密码文件管理
查看>>