首页 > 系统相关 >shell脚本检查tomcat应用健康状态

shell脚本检查tomcat应用健康状态

时间:2022-10-16 19:35:13浏览次数:62  
标签:脚本 shell grep tomcat PID echo home

1.首先应用编写一个接口(http均可)

接口查询数据库中随便一个表一条数据,正常返回数据这表示应用健康,否则应用运行异常。

@RequestMapping(value = "/heartbeat", method = RequestMethod.GET)
public String heartbeat(){    
        //TODO  查询数据库数据(检测应用的同时检测数据库情况)
        List<User> users = queryByUser();
        log.info("=================hart==============心跳请求!");
        if(users.size()>0){
            return "OK";
        }
        return "OK";
    }

2.入口shell脚本(check_web_health.sh)

curl发起请求检查上面接口能否正常返回,总共三次请求,若有一次返回接口正常,则停止脚本执行;若三次都请求失败,则调用重启tomcat脚本(restartup_tomcat.sh)

#!/bin/bash
#Description: check web server
source /etc/profile
LOG="/home/jiankong_shell/log"
DATE=`date +%y%m%d-%H:%M`
a=0
mkdir -p /home/jiankong_shell/log
 
while [ $a -lt 3 ]
do
    RESULT=$(curl --connect-timeout 15 -m 20 http://127.0.0.1:8080/system/heartbeat)
   
    echo -----------------$RESULT
   
    if [ $RESULT ] && [[ $RESULT -eq "OK" ]]
    then
        echo ****************success****************$RESULT
        break
    fi
    a=`expr $a + 1`
#    sleep 10
done
 
if [ $a -eq 3 ]
then   
   # start_tomcat restart
    /home/jiankong_shell/restartup_tomcat.sh
    echo **[$DATE]****************error[$a]*****restart***********>>$LOG/$DATE.down
fi

3.重启tomcat脚本(restartup_tomcat.sh)

这里直接通过杀进程方式停止tomcat,然后在重启tomcat

#!/bin/bash
#执行命令,重启tomcat
source /etc/profile
tomcat_home=/usr/local/apache-tomcat-xxxx
JAVA_HOME=/usr/local/java/jdk1.8.0_45
export JAVA_HOME
#停止tomcat变
SHUTDOWN=$tomcat_home/bin/shutdown.sh
#启动tomcat变量
STARTTOMCAT=$tomcat_home/bin/startup.sh
#ps -ef |grep test | grep -v grep |awk '{print $2}'|xargs kill -9 -p
PID=`ps -ef |grep usr/local/apache-tomcat-workflow-new/conf  |grep -v grep | awk '{print $2}'`
echo $PID
if [ ! "$PID" ];then  # 这里判断TOMCAT进程是否存在
   echo "进程不存在"
else
   echo "进程存在 杀死进程PID$PID"
   kill -9 $PID
fi
$STARTTOMCAT
echo "success"

 

标签:脚本,shell,grep,tomcat,PID,echo,home
From: https://www.cnblogs.com/big-keyboard/p/16796864.html

相关文章

  • 环境变量 位置变量和预定义变量 以及通过脚本实现无人值守备份MySQL数据库
    一、环境变量的定义1)局部环境变量创建环境变量名为a和b的赋值[root@centos01]#a=benet[root@centos01]#b=6.0调用局部环境变量beent[root@centos01]#echo$a$bbeent6.0......
  • 同一应用docker版本和非docker版本共存下,利用shell脚本获取非docker版本pid
    问题场景:在同一VM上部署了同一应用的docker版本和非docker版本,在基于非docke版本应用做jenkinsCI/CD时,通过ps-ef操作获取应用的pid,会受到docker版本应用的干扰,如下以上......
  • 1490_TC275_UART_shell例程测试
    前面我已经测试了UART的简单例子,并且还修改了PIN脚通过Arduino来读取了串口信息。这是一个比较简单的监控方式,只需要一个PIN就能够给我提供printf打印功能。而这样的工具对......
  • bash脚本的判断语句之一
    开始学习bash的“编程”操作。其实严格来说,这个脚本语言的语法是比较古老和特殊的,有很多不符合中国人习惯的东西。因为在中国人的世界里,电脑键盘上面的使用shift才能输出......
  • k8s部署tomcat访问报错404
    [root@k8smaster~]#kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEnginx-6799fc88d8-62njk1/1Running212htomcat-......
  • xp_cmdshell的启用与关闭
    1、xp_cmdshell简介:xp_cmdshell扩展存储过程将命令字符串作为操作系统命令shell执行,并以文本行的形式返回所有输出。一般情况下默认处于关闭状态  2、开启xp_cmd......
  • Shell语法基础
    ​ 1.Linux脚本编写基础1.1语法基本介绍1.1.1开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件......
  • MySQL-8.0版本的docker-compose安装脚本(单实例)
    1.需求场景在开发和测试环境中,或者研究型的环境,对于数据库的安全和稳定性可以稍低一些,那么我们可以通过docker快速部署MySQL服务,降低部署的时间成本。2.脚本2.1目录......
  • shell 学习
    https://www.bilibili.com/video/BV1Eq4y1z7u8/笔记查找指定进程格式(ngnix):ps-ef|grepngnix详解UID用户IDpid内存进程IDppid程序的父进程ID父进程?......
  • 3、关于Tomcat
    Tomcat开源免费的轻量级WEB服务器。Tomcat是Java语言编写的。Tomcat要运行,要有JRE(java运行环境)omcat还有另外一个名字:catalina(catalina是美国的一个岛屿,风景秀丽,据......