Shell 定时5分钟一次监控Tomcat状态,自动重启

shell脚本监控tomcat服务运行状态,服务关闭后进行重启 最近在维护一个项目的时候,发现经常有tomcat运行一段时间后自动停掉的情况,影响了正常的生产交易,被逼无奈,在未找到tomcat自动关闭原因之前,还是得靠shell脚本来进行实时监控。如果发现tomcat没有运行,则执行startup.sh启动tomcat,以下贴出脚本源码。#!bin/sh date=`date +%Y-%m-%d_%H:%M:%S` ##tomcat的进程数,由于脚本名称为mo 阅读详情

公司测试服里有很多个tomcat,我参与的项目的那台tomcat,一天会挂上好几次。

监控系统一直发邮件,觉得实在烦,就写了个监控tomcat的脚本放上去跑。等过两天有空了再去研究tomcat挂掉的原因。 

先贴上Shell代码:

[plain]  view plain  copy
  1. #!/bin/sh  
  2. # function:自动监控tomcat进程,挂了就执行重启操作  
  3. # author:huanghong  
  4. # DEFINE  
  5.   
  6. # 获取tomcat PPID  
  7. TomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat_cardniu_stat'|grep -v 'grep'|awk '{print $2}')  
  8.   
  9. # tomcat_startup  
  10. StartTomcat=/usr/local/tomcat-6.0.41/tomcat_cardniu_stat/bin/startup.sh  
  11.   
  12.   
  13. #TomcatCache=/usr/apache-tomcat-5.5.23/work  
  14.   
  15. # 定义要监控的页面地址  
  16. WebUrl=http://test.cardniu.com/stat-cardniu/login  
  17.   
  18. # 日志输出  
  19. GetPageInfo=/dev/null  
  20. TomcatMonitorLog=/tmp/TomcatMonitor.log  
  21.   
  22. Monitor()  
  23. {  
  24.   echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"  
  25.   if [ $TomcatID ];then  
  26.     echo "[info]tomcat进程ID为:$TomcatID."  
  27.     # 获取返回状态码  
  28.     TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})  
  29.     if [ $TomcatServiceCode -eq 200 ];then  
  30.         echo "[info]返回码为$TomcatServiceCode,tomcat启动成功,页面正常."  
  31.     else  
  32.         echo "[error]访问出错,状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"  
  33.         echo "[error]开始重启tomcat"  
  34.         kill -9 $TomcatID  # 杀掉原tomcat进程  
  35.         sleep 3  
  36.         #rm -rf $TomcatCache # 清理tomcat缓存  
  37.         $StartTomcat  
  38.     fi  
  39.   else  
  40.     echo "[error]进程不存在!tomcat自动重启..."  
  41.     echo "[info]$StartTomcat,请稍候......"  
  42.     #rm -rf $TomcatCache  
  43.     $StartTomcat  
  44.   fi  
  45.   echo "------------------------------"  
  46. }  
  47. Monitor>>$TomcatMonitorLog  

通过ps -ef 及 grep 命令定位到对应项目的tomcat,获取到进程ID。

GetPageInfo = /dev/null,无底洞,不输出。

先判断进程是否存在,不存在则重启,存在则进入状态判断,获取访问请求页的responseCode,不等于200的话也进行重启。

保存shell 名字为monitor.sh


然后在终端输入

[plain]  view plain  copy
  1. crontab -e   

在打开的脚本页输入:

[plain]  view plain  copy
  1. */5 * * * * /usr/local/tomcat-6.0.41/tomcat_cardniu_stat/monitor.sh  
5分钟进行一次监控。
守护进程监控tomcat并自动重启 昨天的tomcat问题,一天挂了3,4回,受不了了决定写个监控tomcat进程并zidongchongqi 阅读详情

相关推荐

linux shell脚本定时3分钟监控Tomcat,自动重启

背景:       公司有个Java项目部署在Tomcat容器中,Tomcat意外宕机后,需要及时重启。避免在假期时出现问题,现编写一个自动监控Tomcat状态的脚本,若Tomcat状态不正常,则自动重启Tomcat. 一、Shell脚本如下: #!/bin/sh # function:Automatic monitoring tomcat process,down re

小圣_fighting的博客 1328

tomcat监听tomcat挂掉重启(shell脚本)

Linux下shell脚本监控Tomcat的状态并实现自动启动 最近公司需要在Linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于Linux下有Shell脚本可以实现此效果,下面是Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤。 1.编写Shell脚本monitor.sh # 定义环境变量 #P...

lixld的专栏 2378

检测Tomcat等网站假死,自动重启脚本

检测Tomcat等网站假死,自动重启脚本,方便大家下载,可以参考修改。

shell脚本停顿一段时间的命令

需要注意的是,sleep命令的参数必须是一个整数或者一个支持算术运算的表达式。如果给出的参数不是整数或者不能被解析为整数,则sleep命令会报错并退出。sleep命令是一个用来让shell脚本停顿一段时间的命令。

captain 2340

配电变压器测控终端装置设计

配电变压器测控终端装置在电网运行中承担着数据采集、状态监测、故障预警及远程控制的关键任务,其性能直接关系到配电系统的安全性与可靠性。本研究围绕测控终端的硬件电路、软件算法、通信系统及系统优化展开深入分析,并基于实验测试验证系统性能。硬件设计包括模拟量输入电路、电压电流信号变换电路、A/D转换电路、控制与通信电路及系统电源电路,确保信号采集的高精度与系统的稳定性。软件部分涵盖系统控制程序、数据采集与处理程序、通信程序及显示与控制程序,实现数据的实时处理与传输。通信模块结合RS-485、CAN总线及以太网技术,

weixin_44553616的博客 1102

Hexo博客使用PDF.js

clone了一个pdf.js 然后兴高采烈地到文章里使用{% pdf %}标签 结果浏览器弹出了个下载框(使用GitHub的raw) 不知道是不是因为使用GitHub的原因导致这个问题 后来我测试的时候报了个错 优快云上的解决方法 到时候我再试试把资源放回lib/里面看看行不行 目录1.clone1.1.官方方法1.2.NexT主题方法1.3.补充2.修改文件2.1.修改viewer.htm...

LTFan 961

定时启动其他脚本的shell,每批启动五个,时间间隔五分钟以上,支持时间戳和时间字符串

该脚本定义了一个要启动的脚本列表,并定义了一个时间戳或时间字符串作为目标执行时间。脚本将目标时间转换为时间戳,并计算任务执行时间。然后,脚本计算要启动的脚本批次数和每批启动的脚本数,并循环启动。

wuchongyong的博客 484

CFD-POST中建立变量的方法

本文以测量文丘里管中全压为例阐述CFD_POST中建立变量的方式 点击进入CFD-POST界面的expressions栏中 2.与expression栏中空白处右键,new-输入新建的表达式名称 3. 在下方的空白栏中右键-varible选择需要的变量,并根据公式进行修改 4.点击进入varibles栏,空白处右击-new-输入变量名totalpressure,在下拉框中找到之前定义的totalpressure 完成后可以在varibles栏中看到新建的...

sidxi的博客 1万+

Linux命令每五分钟执行一次,Linux crontab 每5秒钟执行一次 shell 脚本 的方法

Linux crontab 每5秒钟执行一次 shell 脚本 的方法由于 Linux 的 crontab 的定时命令格式如下:minute hour day-of-month month-of-year day-of-week commands意味着标椎定时任务中,最小定时周期是分钟。但是,由于实际应用中,可能需要每5秒就要求执行某个shell脚本。该如何实现呢?本文中提供如下方式;间隔调用sh...

weixin_26749843的博客 3696

使用安卓的IMU数据进行 行人航位推算(PDR)推算步长 附python 代码

加速度计数据、陀螺仪数据、重力传感器数据、姿态仰角数据。数据分析与定位轨迹生成主要使用Python离线完成。示意图。

三维点云技术探索 1912

Debezium 性能调优实战:吞吐量、延迟与资源平衡

摘要: 本文分享了团队如何通过系统性调优将Debezium从初始3,200 TPS/2.8秒延迟提升至15,200 TPS/210ms延迟的实战经验。优化涵盖四个层面:1)Debezium连接器配置(批处理、快照并行、消息精简);2)Kafka分区策略与Avro序列化缓存;3)JVM改用ZGC及OS参数调优;4)MySQL的binlog与I/O优化。关键发现包括分区数黄金公式、sync_binlog调整带来56%的I/O负载下降,以及避免盲目增大队列内存等陷阱。最终实现吞吐量提升4.75倍,并强调性能调优需

爱丹丹的博客 357

linux 定时执行shell脚本

在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成本文讲述crontab具体用法,以供备忘. 在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成利用crontab来定时执行任务大致有如下三步:1、编写

jingxiangren的专栏 10万+

软考备考:《系统规划与管理师教程》(第2版)第2章——数字ZG与数智化发展

🔴数字化转型的定义:数字化转型是建立在数字化转换、数字化升级基础上,进一步触及组织核心业务,以新建一种业务模式为目标的高层次转型。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 959

Linux使用shell脚本自动监控、重启tomcat

最近突然对shell感兴趣,如何自动监控tomcat,卡死自动重启?参考大智若愚的Giraffe 博客 https://blog.youkuaiyun.com/huang930528/article/details/52292720,稍作改动,写出了适合自己用的脚本。系统环境:CentOS release 6.5 (Final)jdk版本:1.7.0_5tomcat版本:7.0.55.0脚本内容:如下# --...

Boom阿锋的博客 980

ROS & ROS2 机器人深度相机激光雷达多传感器标定工具箱入门教程(一)

multisensor_calibration 是一个积极维护的通用标定工具箱,用于辅助基于目标的多传感器标定,支持 ROS 1 和 ROS 2。它提供了多种方法和应用来标定复杂的多传感器系统,例如。

2506_90492529的博客 3260

DSP篇--C6678功能调试系列之SPI调试

SPI传输数据分为线上直接收发和通过EDMA的数据传输两种。第一种是直接将数据放在线上(SPIDAT1),在寄存器(SPIBUF)中写入命令实现数据的收发;第二种需要配置EDMA,将数据buffer直接作为EDMA的数据源进行传输,其需要配置的参数和中断与EDMA一致。

nanke_yh的博客 1258

tomcat进程检测并自动重启

检测tomcat进程脚:tomcatMonitor.sh #!/bin/sh tomcatName=tomcat3 tomcatPath=/tomcat/tomcat3 selfName=tomcatMonitor pid=`ps aux | grep $tomcatName | grep -v grep | grep -v $selfName | awk '{print $2}...

wuchh3的博客 369

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

WEB应用监控与自动重启的程序和脚本

 首先是在root用户的crontab中添加如下一行:         */5 * * * * /xxx/xxx/monitorM2U.sh         即每5分钟执行一下脚本/xxx/xxx/monitorM2U.sh,这个脚本的内容是: cd /xxx/xxx/xxx/classes; nohup “${JAVA_HOME}”/bin/java –cp ".:$

放飞自我 1616

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux下shell脚本监控Tomcat的状态并实现自动启动

之前用Java写了个在Windows Server服务器上面扫描指定目录下的所有Tomcat服务器并定时监控其状态的Swing程序,最近公司需要在Linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于Linux下有Shell脚本可以实现此效果,就没有考虑用Java代码写了,下面是Linux下shell脚本监控Tomcat的状态并实现自动启...

EagleHao的博客 7241

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Linux定时检测tomcat状态,宕掉时自动重启

废话少说,直接上脚本:#!/bin/bash#author:jgd#Date:2017-09-15#自动检测某个tomcat状态,异常时重启# ---- Start ----# 获取tomcat进程ID  ,根据自己实际情况进行修改,比如端口和tomcat名称TomcatID=$(ps -ef |grep tomcat |grep 9085 |grep -w 'apache-tomcat-9.0....

采撷今朝 6619

Linux下Tomcat定时重启

背景 最近发现Linux(CentOS 8.0)下Tomcat中的服务在连续运行一段时间后,再访问Tomcat下的项目会出现空白页。首先查看Tomcat服务器是否正常运行,发现Tomcat线程存在。接着查看Tomcat的实时日志发现当时的日志中并没有报错,但往上翻得时候会发现有OutOfMemoryError(内存异常)。既然知道原因了,那么解决办法也就出来了。 解决方案 提升服务器配置,优...

MrYang_Wei 1269

Linux上监控Tomcat down掉后自动重启Tomcat

tomcat运行一段时间后,凌晨无缘无故挂掉,看了tomcat日志、项目日志、系统日志,没有发现错误。 于是想到写一个shell脚本,每隔2分钟监控一次tomcat 的状态,若挂掉,则重新启动。解决方案参考网络,同时修改成符合自己的脚本。 使用环境 操作系统:CentOS 7 JDK版本:1.8.0_161-b12 64位 Tomcat版本:8.5.29 编...

u010821757的博客 309

crontab定时监控tomcat实现服务关闭自启动

使用场景 部署到线上的服务, 偶尔因服务器OOM内存溢出导致服务关闭, 可以手动调大JVM内存参数(实际操作效果不大), 或者重启服务。但每次手动重启较为麻烦也不及时,这时可考虑采用crontrab写个定时任务shell脚本, 每隔一段时间监控tomcat进程, 如果服务关闭, 执行tomcat自启动,方便很多。 操作流程 1. 创建shell脚本, 命名tomcat_monitor.sh 本人在tomcat的bin目录下, 创建该脚本文件, 执行 [root@wuhao bin]# vi tomcat_m

mikewuhao的博客 667

Linux系统上实现定时重启Tomcat服务

因为使用阿里云部署服务器应用时,Tomcat服务经常由于内存不足出现OutOfMemoryError异常的情况。经常过几天就需要重启一次服务器,更要命的是不知道什么时候会由于内存不足导致无法访问,如果重启不及时严重影响系统体验。 为了解决上述问题,一方面是对tomcat配置做一些优化,网上有很多文章讲解如何优化Tomcat内存设置;另一方面就是写一个shell脚本,每天定时重启Tomcat服务。...

weixin_39650971的博客 266

java定时器检测状态_实用代码| shell脚本实现定时检查应用状态

关注“java从心”,置顶公众号每天进步一点点,距离大腿又近一步!阅读本文大概需要5分钟 有时候,我们挂在服务器上的应用会因为一些特殊情况挂掉,致使项目经理又对我们说:又挂了!赶紧去看看!于是有了以下脚本,使用shell编写,用于定时检查应用情况,挂掉则重启。 这里以tomcat为例。根据以下步骤即可实现:1.创建并编辑脚本vim test.sh2.复制以下脚本内容至.sh文件中#自动检测某个to...

weixin_39838829的博客 356
上一篇: linux定时任务的设置 crontab 配置指南
下一篇: 提取多层嵌套JSON类型数据
砍我一刀
博客等级 码龄14年 9粉丝 11原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值