zoukankan      html  css  js  c++  java
  • linux监测tomcat服务

    原文链接:https://blog.csdn.net/qq_37936542/article/details/81086928

    项目上线之后,tomcat服务器有时候会莫名其妙的挂掉,利用shell写一个看门狗程序,监测tomcat异常关闭后,重启服务器。

    1:新建脚本文件,赋予权限

    
     
    1. touch start.sh

    2. chmod 755 start.sh

    2:编写脚本文件

    
     
    1. #!/bin/sh

    2.  
    3. # 自动监控tomcat并且在异常时执行重启操作

    4.  
    5.  
    6. # 定义java环境变量

    7. export JAVA_HOME=/usr/local/myApp/jdk1.8

    8.  
    9.  
    10. # 获取端口号为8080的tomcat进程ID(考虑到有多个tomcat服务器,用8080关键词)

    11. # grep -v grep 排除grep命令自带的进程id

    12. # awk '{print $2}' 只保留结果中第二列的值

    13. pid=$(ps -ef |grep 8080|grep -v grep|awk '{print $2}')

    14.  
    15.  
    16. # tomcat启动脚本

    17. start=/usr/local/myApp/tomcat8080/bin/startup.sh

    18.  
    19.  
    20. # tomcat缓存

    21. cache=/usr/local/myApp/tomcat8080/work

    22.  
    23.  
    24. # tomcat链接地址

    25. url=http://localhost:8080

    26.  
    27.  
    28. # 监控时的日志输出

    29. log=/tmp/my.log

    30.  
    31.  
    32. #linux垃圾回收站

    33. hole=/dev/null

    34.  
    35.  
    36. function doIt()

    37. {

    38. if [ $pid ]

    39. then

    40. echo "tomcat进程ID存在"

    41. code=$(curl -s -o $hole -m 10 --connect-timeout 10 $url -w %{http_code}" ") #测试链接是否可以正常访问

    42. if [ $code -eq 200 ]

    43. then

    44. echo "测试链接正常"

    45. else

    46. echo "测试链接失败,重启tomcat"

    47. kill -9 $pid # 杀掉进程

    48. sleep 5

    49. rm -rf $cache # 清理tomcat缓存

    50. $start

    51. fi

    52. else

    53. echo "tomcat进程id不存在,重启中...."

    54. rm -rf $cache

    55. $start

    56. fi

    57. echo "------------------------------"

    58. }

    59.  
    60. doIt>>$log #执行函数,并打印日志

    3:设置定时执行start.sh文件

    crontab -e

    添加内容:

    */30 * * * * /tmp/mySh/start.sh   #每30分钟执行一次

    4:启动定时任务

    
     
    1. service crond start #启动定时任务

    2.  
    3. service crond status #查看状态

    4.  
    5. service crond restart #重启定时任务

    6.  
    7. service crond stop #停止定时任务

    5:查看定时任务

    crontab -l

    注意:某些自己用yum install xxx安装的系统命令,在shell脚本文件执行时可能会失效,这时候使用

    which xxx 查看命令的安装目录,然后在shell脚本文件中使用绝对路径就ok了

    参考文章:https://blog.csdn.net/zzq900503/article/details/50723191

    关注「编程微刊」公众号 ,在微信后台回复「领取资源」,获取IT资源300G干货大全。

    公众号回复“1”,拉你进程序员技术讨论群.

  • 相关阅读:
    zoj 2316 Matrix Multiplication 解题报告
    BestCoder7 1001 Little Pony and Permutation(hdu 4985) 解题报告
    codeforces 463C. Gargari and Bishops 解题报告
    codeforces 463B Caisa and Pylons 解题报告
    codeforces 463A Caisa and Sugar 解题报告
    CSS3新的字体尺寸单位rem
    CSS中文字体对照表
    引用外部CSS的link和import方式的分析与比较
    CSS样式表引用方式
    10个CSS简写/优化技巧
  • 原文地址:https://www.cnblogs.com/ting6/p/9725405.html
Copyright © 2011-2022 走看看