tomcat健康健康

#!/bin/bash
#运行后台脚本,通过循环 一直检查tomcat运行状态
while [ true ]
do
url="http://,127.0.0.1:80/evalue/login.jsp";
kp=`service keepalived status | awk 'NR==1{print $4}'`
tomcatid=`ps -ef |grep /usr/local/apache-tomcat-7.0.70 |grep -v 'grep'|awk '{print $2}'`
httpOK=`curl --connect-timeout 10 -m 60 --head --silent $url | awk 'NR==1{print $2}'`;
sleep 2s
if [[ $httpOK == "200" ]];then
echo "`date`:运行正常"
else
echo "`date`:杀死keep"
service keepalived stop
fi
if [[ $httpOK = "200" ]]&&[[ $kp != "正在运行..." ]];then
echo "`date`:keepalived未运行,重启"
service keepalived restart
fi
# tomcat卡死,有进程但不能访问
if [[ $httpOK != "200" ]]&&[[ $tomcatid != "" ]];then
echo "`date`:tomcat有进程,杀死重启"
kill -9 $tomcatid
sleep 5s
/usr/local/apache-tomcat-7.0.70/bin/startup.sh
sleep 10m
service keepalived start
fi
#tomcat 无进程
if [[ $httpOK != "200" ]]&&[[ $tomcatid == "" ]];then
echo "`date`:tomcat无进程,重启"
/usr/local/apache-tomcat-7.0.70/bin/startup.sh
sleep 8m
service keepalived start
fi
sleep 3s;
done;

 


#! /bin/bash
sleep 10m
cd /usr/local/tmctjk/
nohup /usr/local/tmctjk/tmctjk.sh &

 

 

#!/bin/bash
#运行后台脚本,通过循环 一直检查tomcat运行状态
while [ true ]
do
url="http://,127.0.0.1:80/evalue/login.jsp";
urlyj="http://,127.0.0.1:8081/edpc/login.jsp";
kp=`service keepalived status | awk 'NR==1{print $4}'`;
tomcatid=`ps -ef |grep /usr/local/apache-tomcat-7.0.70 |grep -v 'grep'|awk '{print $2}'`;
tomcatyjid=`ps -ef |grep /usr/local/apache-tomcat-yj |grep -v 'grep'|awk '{print $2}'`;
httpOK=`curl --connect-timeout 10 -m 60 --head --silent $url | awk 'NR==1{print $2}'`;
httpOKyj=`curl --connect-timeout 10 -m 60 --head --silent $urlyj | awk 'NR==1{print $2}'`;
sleep 2s
if [[ $httpOK == "200" ]]&&[[ $httpOKyj == "200" ]];then
echo "`date`:应急和安评运行正常"
else
echo "`date`:运行不正常,首先杀死keep"
service keepalived stop
if [[ $httpOK = "200" ]];then
echo "`date`:安评运行正常"
else
echo "`date`:安评不正常,重启"
if [[ $tomcatid = "" ]];then
/usr/local/apache-tomcat-7.0.70/bin/startup.sh
sleep 3m
elif [[ $tomcatid != "" ]];then
kill -9 $tomcatid
sleep 2s
/usr/local/apache-tomcat-7.0.70/bin/startup.sh
sleep 3m
fi
fi
if [[ $httpOKyj = "200" ]];then
echo "`date`:应急正常"
else
echo "`date`:应急不正常,重启"
if [[ $tomcatyjid = "" ]];then
/usr/local/apache-tomcat-yj/bin/startup.sh
sleep 3m
elif [[ $tomcatyjid != "" ]];then
kill -9 $tomcatyjid
sleep 2s
/usr/local/apache-tomcat-yj/bin/startup.sh
sleep 3m
sleep 3m
fi
fi
if [[ $httpOK = "200" ]]&&[[ $httpOKyj = "200" ]]&&[[ $kp != "正在运行..." ]];then
echo "`date`:keepalived未运行,重启"
service keepalived restart
fi
# tomcat卡死,有进程但不能访问
# if [[ $httpOK != "200" ]]&&[[ $tomcatid != "" ]];then
# echo "`date`:tomcat有进程,杀死重启"
# kill -9 $tomcatid
# sleep 5s
# /usr/local/apache-tomcat-7.0.70/bin/startup.sh
# sleep 10m
# service keepalived start
# fi
#tomcat 无进程
# if [[ $httpOK != "200" ]]&&[[ $tomcatid == "" ]];then
# echo "`date`:tomcat无进程,重启"
# /usr/local/apache-tomcat-7.0.70/bin/startup.sh
# sleep 10m
# service keepalived start
# fi
# sleep 3s;
done;


#! /bin/bash
cd /usr/local/apache-tomcat-7.0.70/logs/
hangshu=`awk 'END{print NR}' catalina.out`
if [[ $hangshu -ge 5000000 ]];then
let baoliu=$hangshu-5000000
echo $hangshu
echo $baoliu
sed -i "1,${baoliu}d" catalina.out
else
echo "行数不够"
fi

防止特殊字符无法识别,在所有(开发本地/现场)tomcat的conf文件夹下server.xml中加入relaxedQueryChars="[]|{}^\`"<>"
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"
redirectPort="8443"
URIEncoding="UTF-8" />

posted @   房东家的猫  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示