Linux shell自动监控tomcat宕机重启
来源:互联网 发布:电脑淘宝怎么上货 编辑:程序博客网 时间:2024/06/03 23:45
参考网上例子 整了个 linux 的自动检测tomcat宕机的shell脚本
以后就可以自己重启了 出了问题。。(有时间放到linux定时任务计划里面)\
下面检测的是一个工程里面的图片 来检测tomcat 是否正常
echo 001 这种打断点使用的 可以自己去掉
#!/bin/bash#author: flyerNOL=$(ps -ef |grep tomcat|awk '{print $2}')# echo $NOLSYS=`uname -a|awk '{print $2}'`TLOG=/var/log/tomcat.logPID=/tmp/tomcatTOMCAT_HOME=/alidata/server/apache-tomcat-7.0.62TOMCAT_START=$TOMCAT_HOME/bin/startup.sh TOMCAT_STOP=$TOMCAT_HOME/bin/shutdown.shDATE=`date +%Y/%m/%d_%H:%M:%S`RESULT=`/usr/bin/wget -S --spider --tries=3 --timeout=3 http://localhost:8080/bimatrixweb/resources/images/logo_bimatrix.png 2>&1 | grep HTTP/1.1|awk '{print $2}'` echo $RESULT##############PID isn't in#################echo $PID##############tomcat####################### TOMCATPID=`ps -ef|grep tomcat|grep java|grep -v "grep"|awk '{print $2}'`echo $TOMCATPIDif [ "T$RESULT" == "T200" ]; thenecho 003 echo -ne "$SYS $DATE Tomcat is OK!">>$TLOG#echo "$SYS is $NOL about tomcat restart ok"|mail -s $SYS 277983676@qq.com elseecho 004 echo -ne "$DATE Tomcat is down !!">>$TLOG #echo "$SYS is $NOL about tomcat"|mail -s $SYS 277983676@qq.com#TOMCATPID=`ps -ef|grep tomcat|grep java|grep -v "grep"|awk '{print $2}'` if [ ! -z "$TOMCATPID" ];then#echo $TOMCATPID#echo 008kill -9 $TOMCATPID #放开#echo $TOMCATPID sleep 4 fi echo 005 echo 开始启动 $TOMCAT_START #sleep 10 echo "$DATE $SYS'tomcat is restarting" >>$TLOG if [ "T$RESULT" == "T200" ]; then echo 006 echo -ne "$SYS $DATE is $NOL about tomcat restart ok!!" >>$TLOG #echo "$SYS is $NOL about tomcat restart ok"|mail -s $SYS 277983676@qq.com else echo 007 echo -ne "SYS $DATE is $NOL about tomcat failure" >>$TLOG # echo "TOMCAT restart failure $SYS is $NOL "|mail -s $SYS $NOL 277983676@qq.com fi fi#fi
参考:http://blog.chinaunix.net/uid-25046147-id-3078397.html
8.1修改了一版本 增加了文件锁
防止上次脚本还没有执行 下次脚本开始了 开始时候创建个文件 执行完之后删除
然后加入jdk的 环境变量 脚本加入linux的定时计划 不然会报错
在提示root 13745 31098 0 19:46 pts/4 00:00:00 grep --color=auto tomcat
您在 /var/mail/root 中有新邮件
/var/mail/root root 文件发现错误
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined.
加入环境变量export JAVA_HOME=/opt/java/jdk1.7.0_75
export JRE_HOME=/opt/java/jdk1.7.0_75/jre
完整代码加入
#!/bin/bashNOL=$(ps -ef |grep tomcat|awk '{print $2}')# echo $NOLSYS=`uname -a|awk '{print $2}'`TLOG=/var/log/tomcat.logPID=/tmp/tomcatTOMCAT_HOME=/home/thomas/apache-tomcat-7.0.59 TOMCAT_START=$TOMCAT_HOME/bin/startup.sh TOMCAT_STOP=$TOMCAT_HOME/bin/shutdown.shexport JAVA_HOME=/opt/java/jdk1.7.0_75export JRE_HOME=/opt/java/jdk1.7.0_75/jreDATE=`date +%Y/%m/%d_%H:%M:%S`#RESULT=`/usr/bin/wget -S --spider --tries=3 --timeout=3 http://localhost:8080/revitbus/resources/assets/base/img/layout/logos/logo-1.png 2>&1 | grep HTTP/1.1 | awk '{print $2}' `#方式1 图片 #RESULT=`/usr/bin/wget -S --spider --tries=3 --timeout=3 http://192.168.2.115:8080/revitbus/resources/assets/base/img/layout/logos/logo-1.png 2>&1 | grep HTTP/1.1|awk '{print $2}'` #方式2 请求页面RESULT=`/usr/bin/wget -S --spider --tries=3 --timeout=3 http://192.168.2.115:8080/revitbus/news/contactus.html 2>&1 | grep HTTP/1.1|awk '{print $2}'` #这里定时获取的连接 可以是一个图片 也可以是一个不怎么经常被访问的页面最好比较小的 消耗比较小echo $RESULT##############PID isn't in#################echo $PID##############tomcat####################### TOMCATPID=`ps -ef|grep tomcat|grep java|grep -v "grep"|awk '{print $2}'`echo $TOMCATPID#echo "有其他脚本正在执行,本次退出执行" >$PID 相当于文件锁 防止两个程序同时启动一个宕机的程序if [ -f $PID ];thenecho "文件存在 文件在$filepath" echo "本次程序退出" exit;elseecho "文件不存在 没有文件锁 本次脚本继续往下执行.."echo "本程序开始执行本次定时任务" >$PID #加入文件锁fi#mutt -s "Test mail" 277983676@qq.com < /var/log/tomcat.log #$TLOGif [ "T$RESULT" == "T200" ]; thenecho 003 #echo -ne "$SYS $DATE Tomcat is OK!">>$TLOG#echo "$SYS is $NOL about tomcat restart ok"|mail -s $SYS 277983676@qq.com elseecho 004 echo -ne "$DATE Tomcat is down !!">>$TLOG #echo "$SYS is $NOL about tomcat"|mail -s $SYS 277983676@qq.com#TOMCATPID=`ps -ef|grep tomcat|grep java|grep -v "grep"|awk '{print $2}'` if [ ! -z "$TOMCATPID" ];then#echo $TOMCATPIDecho 008kill -9 $TOMCATPID #放开#echo $TOMCATPID sleep 4 fi echo 005 # echo 1 >$PID echo 开始启动 $TOMCAT_START #sleep 10 echo "$DATE $SYS'tomcat is restarting" >>$TLOG if [ "T$RESULT" == "T200" ]; then echo 006 echo -ne "$SYS $DATE is $NOL about tomcat restart ok!!" >>$TLOG #echo "$SYS is $NOL about tomcat restart ok"|mail -s $SYS 277983676@qq.com # rm -rf $PID else echo 007 echo -ne "SYS $DATE is $NOL about tomcat failure" >>$TLOG # echo "TOMCAT restart failure $SYS is $NOL "|mail -s $SYS $NOL 277983676@qq.com fi firm -rf $PID #程序处理完删除文件锁#fi
定时计划
# For more information see the manual pages of crontab(5) and cron(8)
*/20 * * * * /home/bowen/tomcatMonitorNew.sh
# */1 * * * * echo “Hello World.” >> /alidata/test
关于定时任务 参考文章
http://blog.csdn.net/albertfly/article/details/51338295
注意使用的时候 记得给这个sh 可执行文件赋权限
chmod 777 tomcatMonitorNew.sh
- Linux shell自动监控tomcat宕机重启
- Linux下使用shell脚本自动监控重启tomcat
- Linux下使用shell脚本自动监控重启tomcat
- shell自动监控重启Tomcat脚本
- shell自动监控重启Tomcat脚本
- shell自动监控重启Tomcat脚本
- shell自动监控重启Tomcat脚本
- 监控tomcat服务自动重新启动shell脚本
- LINUX下使用Shell自动监控tomcat并且执行重启操作
- LINUX下使用Shell自动监控tomcat并且执行重启操作
- LINUX下使用Shell自动监控tomcat并且执行重启操作
- LINUX下使用Shell自动监控tomcat并且执行重启操作
- linux shell脚本定时3分钟监控Tomcat,自动重启
- Linux下脚本自动监控Tomcat服务
- shell自动监控重启Tomcat脚本,每一分钟检查
- LINUX下使用Shell自动监控tomcat并且执行重启操作 --谷营中西软件科技园
- 二、shell监控tomcat进程宕机重启
- Linux 监控tomcat,自动重启tomcat服务
- 设计模式——适配器模式
- javaweb学习总结(八)——HttpServletResponse对象(二)
- JSON.parse()和JSON.stringify()
- 禁止ScrollView在子控件的布局改变时自动滚动的的方法
- 16-7-12笔记
- Linux shell自动监控tomcat宕机重启
- Eclipse查看jar包源码的方法
- 求几个(数)中有无相同(数)的应用
- 升级到iOS9.3.3越狱实践和感受
- [转]如何使用python修改注册表
- ElasticSearch跨域查询(多词搜索)
- 研读:CaSE Cache-Assisted Secure Execution on ARM Processors
- JVM的内存管理和垃圾回收
- MySQL索引背后的数据结构及算法原理