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

#定義函數check_http: html

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

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

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

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


#!/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
相關文章
相關標籤/搜索