shell指令碼使用curl獲取訪問網站的狀態碼
阿新 • • 發佈:2019-01-02
curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com -I 僅測試HTTP頭 -m 10 最多查詢10s -o /dev/null 遮蔽原有輸出資訊 -s silent -w %{http_code} 控制額外輸出 繫結 ip 測試: curl -I -m 10 -H "www.baidu.com" http://220.xxx.112.143 -o /dev/null -s -w %{http_code}
特別需要注意的是訪問的url地址不能寫localhost或者是127.0.0.1 ,這樣寫curl一直返回的狀態碼都是000,我測試了下本機的話寫路由器分配的那個ip地址是可以正常返回狀態值的。
現在附上我寫的監聽tomcat重啟指令碼,監聽可以用crontab來實現
#!/bin/bash justWeb=`curl -I -m 10 -o /dev/null -s -w %{http_code} http://192.168.18.2/gw`; echo 'justWeb ' $justWeb; if [ "$justWeb"x != "200"x ] ; then procId=`ps -ef | grep tomcat |grep -v 'grep' | awk '{print $2}' | head -1`; /usr/local/apache-tomcat-7.0.62/bin/shutdown.sh; #/home/zzq/app/apache-tomcat-7.0.76/bin/shutdown.sh; dateTime=`date`; echo $dateTime '檢測到web服務狀態碼為: ' $justWeb ' 正在關閉tomcat程序id : '$procId >> ./restartTomcat.log; kill -9 $procId; /usr/local/apache-tomcat-7.0.62/bin/startup.sh; #/home/zzq/app/apache-tomcat-7.0.76/bin/startup.sh;