fileurl='/root/url.txt'
for chkurl in $(cat ${fileurl}) # ${}忽略空格
do
# -o 输出内容到/dev/null; -s 静默方式 ;-w 定义显示输出格式;"%{http_code}" 在最后被检索的 HTTP(S) 页中被找到的数字的代码
HTTP_CODE=`curl -o /dev/null -s --head -w "%{http_code}" "${chkurl}"`
if [ ${HTTP_CODE} -ne 200 ]
then
port=9980
echo `date "+%Y-%m-%d %H:%M:%S"` 项目正在重启..... >>check-result.txt
#根据端口号查询对应的pid
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
#杀掉对应的进程,如果pid不存在,则不执行
if [ -n "$pid" ]; then
kill -9 $pid;
fi
sleep 3
cd /home/tomcat/lepeng_tomcat/tomcat-8.0.46-9980/bin/
./startup.sh
else
echo -e `date "+%Y-%m-%d %H:%M:%S"` 当前状态码为${HTTP_CODE}: $chkurl >>check-result.txt
fi
done
本文作者为lishengyu,转载请注明。