zz22 发表于 2018-12-4 10:03:57

tomcat检测脚本

  最近写了个简单的tomcat检测脚本。可以进行简单的进程和页面检测。
#!/bin/bash
# author:wangxingwei
# date:2015/9/1
# fun:检测tomcat进程和页面是否正常
StartTomcat=/home/aspire/apps/tomcat/bin/startup.sh
TomcatCache=/home/aspire/apps/tomcat/work
TomcatCheckLog=/home/aspire/logs/check_tomcat_log
TomcatName=tomcat
TomcatPort=8080
# 定义要监控的页面地址
WebUrl=http://localhost:$TomcatPort
StartTom() #启动tomcat函数
{
      echo " 开始启动tomcat"
      $StartTomcat
      TomcatNum=`ps aux|grep $TomcatName|grep -Ev "grep|$0"|awk -F " " '{print $2}'|wc -l`
    if [ $TomcatNum -eq 0 ];then
      echo "Tomcat启动失败"
    else
      echo "Tomcat启动成功"
    fi
}
KillTom() #杀死tomcat函数
{
    echo "开始杀死Tomcat进程"
    ps aux|grep $TomcatName|grep -Ev "grep|$0"|awk -F " " '{print $2}'|xargs kill -9 #杀掉tomcat进程
    TomcatNum=`ps aux|grep $TomcatName|grep -Ev "grep|$0"|awk -F " " '{print $2}'|wc -l` #检测是否杀掉
    if [ $TomcatNum -eq 0 ];then
      echo "Tomcat 进程全部杀死"
    else
      echo "Tomcat 进程没有被杀死"
    fi
}
CheckPage()
{
CheckPageNum=3
    while [ $CheckPageNum -ne 0 ]
    do
    if [ $CheckPageNum -eq 1 ];then
    echo "开始进行最后一次页面检测"
    else
echo "正在进行第$((4-$CheckPageNum))次页面检测............"
fi
sleep 10
    TomcatServiceCode=$(curl -I -m 10$WebUrl-o /dev/null -s -w %{http_code})
    if [ $TomcatServiceCode -eq 200 ];then
      echo "页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常......"
break
    else
      echo "tomcat页面出错,请注意......状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"
         echo "页面访问出错,开始重启tomcat"
         KillTom# 杀掉原tomcat进
sleep 3
      rm -rf $TomcatCache # 清理tomcat缓存
      StartTom
CheckPageNum=$(($CheckPageNum-1))
    fi
    done
}
CheckTomcat()
{
echo "----start--------`date`--------------------------------"
TomcatID=`ps aux| grep $TomcatName|grep -Ev "$0|grep"|awk -F " " '{print $2}'`
if [ -n "$TomcatID" ];then# 这里判断TOMCAT进程是否存在
    echo "当前tomcat进程ID为:$TomcatID,继续检测页面..."
    CheckPage
else
    echo "tomcat进程不存在!tomcat开始自动重启..."
    echo "$StartTomcat,请稍候......"
    rm -rf $TomcatCache
    $StartTomcat
    TomcatID=`ps aux| grep $TomcatName|grep -Ev "$0|grep"|awk -F " " '{print $2}'`
    echo "Tomcat进程为$TomcatID,开始检测页面"
    CheckPage
fi
echo "----end----------`date`--------------------------------"
}
CheckTomcat >> $TomcatCheckLog  




页: [1]
查看完整版本: tomcat检测脚本