通過curl檢查網站的響應時間來判斷是否重啓應用

目錄

寫在前面

具體腳本如下

寫在後面


寫在前面

最近公司有一個項目偶爾(無規律可循)會出現響應時間過長導致應用宕機的情況。由於公司開發資源緊張。一時間研發沒有時間處理該問題。所以想着通過判斷應用的響應時間來重啓應用

具體腳本如下

#!/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

寫在後面

當然此非長久之計。還是需要通過代碼分析定位具體問題。然後徹底解決掉!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章