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

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

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

  1.  
  2.  
  1. touch start.sh

  2. chmod 755 start.sh

2:编写脚本文件

  1.  
  2.  
  1. #!/bin/sh

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

  3. # 定义java环境变量

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

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

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

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

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

  9. # tomcat启动脚本

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

  11. # tomcat缓存

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

  13. # tomcat链接地址

  14. url=http://localhost:8080

  15. # 监控时的日志输出

  16. log=/tmp/my.log

  17. #linux垃圾回收站

  18. hole=/dev/null

  19. function doIt()

  20. {

  21. if [ $pid ]

  22. then

  23. echo "tomcat进程ID存在"

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

  25. if [ $code -eq 200 ]

  26. then

  27. echo "测试链接正常"

  28. else

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

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

  31. sleep 5

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

  33. $start

  34. fi

  35. else

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

  37. rm -rf $cache

  38. $start

  39. fi

  40. echo "------------------------------"

  41. }

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

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

  1. crontab -e

添加内容:

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

4:启动定时任务

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

  2. service crond status #查看状态

  3. service crond restart #重启定时任务

  4. service crond stop #停止定时任务

5:查看定时任务

  1. crontab -l

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

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

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

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

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

linux监测tomcat服务的更多相关文章

  1. Linux下tomcat服务

    一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...

  2. linux下tomcat服务的启动、关闭与错误跟踪

    linux下tomcat服务的启动.关闭与错误跟踪,远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务: 1).启动tomcat服务 进入tomcat主目录下的bin目录,然后执行如下 ...

  3. linux下tomcat服务的相关命令

    一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...

  4. PuTTy linux下tomcat服务的相关命令

    一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...

  5. 转:Linux中tomcat服务成功发布但局域网浏览器无法访问

    转自:http://blog.csdn.net/mooncom/article/details/53168143 昨天,我在搭建Linux中服务器环境时,碰见一个问题,这里和大家分享一下. 问题描述: ...

  6. Linux(CENTOS7) Tomcat服务成功发布但局域网浏览器无法访问

    问题 : 我在linux搭建了一个tomcat服务器,tomcat开启后,发现在局域网浏览器上无法访问该tomcat,浏览器报无法访问服务器错误,我查看了tomcat的日志,路径..../tomcat ...

  7. linux篇-linux 下tomcat服务每天定时启动

    1l先准备一个脚本 #!/bin/sh #./etc/profile export JAVA_HOME=/usr/java/jdk1.6.0_45 sh /home/tomcat-bingchuang ...

  8. Linux部署tomcat服务常用命令

    cd / 转到根目录 ps -ef|grep tomcat查看进程 ./bin/shutdown.sh 关闭 rm -r logs/* 清除日志 ps -ef|grep tomcat查看进程 ./bi ...

  9. linux下启动和关闭tomcat服务的方式

    Linux下tomcat服务的启动.关闭与错误跟踪,通常通过以下几种方式启动关闭tomcat服务: 切换到tomcat主目录下的bin目录 启动tomcat服务 生产模式: 方式一:直接启动 ./st ...

随机推荐

  1. Mysql之索引的基本概念

    一.索引是什么? 比如我们要在字典中找某一字,如何才能快速找到呢?那就是通过字典的目录. 对数据库来说,索引的作用就是给‘数据’加目录. 二.索引算法 设有N条随机记录,不用索引,平均查找N/2次,那 ...

  2. jquery ajax中支持哪些返回类型以及js中判断一个类型常用的方法?

    1 jquery ajax中支持哪些返回类型在JQuery中,AJAX有三种实现方式:$.ajax() , $.post , $.get(). 预期服务器返回的数据类型.如果不指定,jQuery 将自 ...

  3. Flex 集合 ArrayCollection 的使用

    转:http://keren.iteye.com/blog/380847 转:http://callan.iteye.com/blog/335551 集合是ActionScript 中功能强大的基于索 ...

  4. JavaScript进阶之执行上下文和执行栈

    js引擎的执行过程 执行上下文和执行栈属于js引擎的执行过程的预编译阶段. 执行上下文(Execution Context) 执行上下文是当前 JavaScript 代码被解析和执行时所在环境的抽象概 ...

  5. Java技术——Java泛型详解(转)

    ); for (int i = 0; i < list.size(); i++) { String name = (String) list.get(i); //取出Integer时,运行时出现 ...

  6. hdparm

    https://www.douban.com/note/244813504/ http://blog.sina.com.cn/s/blog_413d250e0101jtr7.html http://m ...

  7. Linux局域网登陆响应时间过长

    在局域网中,使用ssh登陆到其他机器上时,有时会出现等待10s以上才能正常登陆的问题. 原因: Linux默认使用dns解析登陆IP,但是在局域网,并没有dns服务器,而且机器上也没有添加 IP与域名 ...

  8. java之 ------ 几种常见的简单设计模式

    前言: 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.用于解决特定环境下.反复出现的特定问题的解决方式.使用设计模式是为了可重用代码.让代 ...

  9. MongoDB + node-mongoskin简单演示样例

    特点 无模式 MongoDB 中的每一条文档,都是一个 JSON 对象,因此你无需提前定义一个集合的结构,集合中的每一个文档也能够有不同的结构. 异步写入 MongoDB 默认全部的写操作都是『不安全 ...

  10. cgroups

    CGROUPS官方解析,用户空间怎样监控 http://blog.chinaunix.net/uid-16763274-id-2103750.html cgroups概念 fr=aladdin&quo ...