通过curl检查网站的响应时间来判断是否重启应用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011192409/article/details/86620756

目录

写在前面

具体脚本如下

脚本编入定时任务

如果执行上面的脚本执行报错

写在后面


写在前面

最近公司有一个项目偶尔(无规律可循)会出现响应时间过长导致应用宕机的情况。由于公司开发资源紧张。一时间研发没有时间处理该问题。所以想着通过判断应用的响应时间来重启应用

具体脚本如下

#!/bin/bash
#通过curl获取应用响应时间
time_total=`curl -o /dev/null -s -w '%{time_connect}:%{time_starttransfer}:%{time_total}\n' 'www.baidu.com' | awk -F ':' '{print $3}'` 
#获取应用项目进程ID
tomcatpid=`ps -ef | grep apache-tomcat-6.0.35 | grep -v grep | grep -v /usr/local/sbin/cronolog | awk '{print $2}'`
echo "time_total应用响应时间为:$time_total"
echo "tomcat项目进程ID为:$tomcatpid"
#设置最大响应时间
time_total_maximum=5.00
c=$(echo "$time_total > $time_total_maximum" | bc)
#判断响应时间
#然后做判断1为真0为假
if [ $c -eq 1 ]
then
#echo 'time_total大于time_total_maximum'
echo "响应时间大于5"
echo "执行重启Tomcat操作"
#杀进程
kill -9 $tomcatpid
sleep 3
echo "$tomcatpid已杀死..."
echo "重启tomcat..."
/XXXX/XXXX/XXXX/bin/startup.sh #Tomcat启动路径
else
echo 'time_total小于等于time_total_maximum'
echo "响应时间正常"
fi

脚本编入定时任务

#每三十分钟执行一次
*/30 * * * * /XXX/sh/tomcat-check-restart.sh >> /XXX/sh/tomcat-check-restart.log 2>&1

如果执行上面的脚本执行报错

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program

如果报错如上所示,将Tomcat路径bin目录下的setclasspath.sh设置一下JAVA_HOME和JRE_HOME。如下图所示:

写在后面

当然此非长久之计。还是需要通过代码分析定位具体问题。然后彻底解决掉!

猜你喜欢

转载自blog.csdn.net/u011192409/article/details/86620756