日期:2014-05-16 浏览次数:20967 次
#!/bin/sh
#echo $(date) >>/root/myweb.log
#./etc/profile
#.~/.bash_profile
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/java/jdk1.6.0_20/bin
date +%Z--%A--%x--%T >>/root/myweb.log
echo "Start Detector Tomcat Progress!" >>/root/myweb.log
URL="http://127.0.0.1:7000/myweb/"
curlit()
{
curl --connect-timeout 15 --max-time 20 --head --silent "$URL" | grep '200'
#上面的15是连接超时时间,若访问localhost的HTTP服务超过15s仍然没有正确响应200头代码,则判断为无法访问。
}
doit()
{
if ! curlit; then
echo "Tomcat was dead!" >> /root/myweb.log
echo "Restart Tomcat!" >> /root/myweb.log
# 如果localhost的apache服务没有正常返回200头,即出现异常。执行下述命令:
sleep 10
kill `ps -ef|grep java|grep -v grep |awk '{print $2}'` > /dev/null 2>&1
# 这条语句中ps -ef|grep java|grep -v grep为查询进程中java进程同时排除本身语句,用awk找到第二列信息,返回状态扔到黑洞中。
sleep 2
cd /root/apache-tomcat-6.0.24/bin/
sh startup.sh
#sh /root/apache-tomcat-6.0.24/bin/startup.sh
echo "Tomcat Restart!" >> /root/myweb.log
# 写入日志
sleep 120
# 重启完成后等待,然后再次尝试一次
echo "Detector once more!"
if ! curlit; then
# 如果仍然无法访问,则:
echo "Restart Failed!" >> /root/myweb.log
# 写入apache依然重启失效的日志
else
echo "Restart Success!" >> /root/myweb.log
fi
else
echo "Tomcat is running!" >> /root/myweb.log
fi
}
sleep 3
# 运行脚本后才开始正式工作(防止重启服务器后由于tomcat还没开始启动造成误判)
# 主循环体
doit
echo "Detector Over!" >> /root/myweb.log
echo "---------------------------------------" >> /root/myweb.log