shell腳本:監控HTTP服務的狀態(測試返回碼)

#定義函數check_http: 

#使用curl命令檢查http服務器的狀態 #-m設置curl不管訪問成功或失敗,最大消耗的時間爲5秒,5秒連接服務爲相應則視爲無法連接

#-s設置靜默連接,不顯示連接時的連接速度、時間消耗等信息 

#-o將curl下載的頁面內容導出到/dev/null(默認會在屏幕顯示頁面內容) 

#-w設置curl命令需要顯示的內容%{http_code},指定curl返回服務器的狀態碼


#!/bin/bash
#Author:丁丁歷險(Jacob)
#設置變量,url爲你需要檢測的目標網站的網址(IP或域名)
url=http://192.168.4.5/index.html
 
#定義函數check_http:
#使用curl命令檢查http服務器的狀態
#-m設置curl不管訪問成功或失敗,最大消耗的時間爲5秒,5秒連接服務爲相應則視爲無法連接
#-s設置靜默連接,不顯示連接時的連接速度、時間消耗等信息
#-o將curl下載的頁面內容導出到/dev/null(默認會在屏幕顯示頁面內容)
#-w設置curl命令需要顯示的內容%{http_code},指定curl返回服務器的狀態碼
check_http(){
status_code=$(curl -m 5 -s-o /dev/null -w %{http_code} $url)
}
 
while :
do
       check_http
       date=$(date +%Y%m%d-%H:%M:%S) 
#生成報警郵件的內容
       echo "當前時間爲:$date
       $url服務器異常,狀態碼爲${status_code}.
       請儘快排查異常." > /tmp/http$$.pid
       
#指定測試服務器狀態的函數,並根據返回碼決定是發送郵件報警還是將正常信息寫入日誌
       if [ $status_code -ne 200 ];then
              mail -s Warning root < /tmp/http$$.pid
       else
              echo "$url連接正常" >> /var/log/http.log
       fi
       sleep 5
done



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