1. 程式人生 > >shell腳本:監控HTTP服務的狀態(測試返回碼)

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

腳本 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



本文出自 “丁丁歷險” 博客,請務必保留此出處http://manual.blog.51cto.com/3300438/1977834

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