shell腳本:監控HTTP服務的狀態(測試返回碼)
阿新 • • 發佈:2017-11-01
腳本 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服務的狀態(測試返回碼)