今日練習題
【需求】
寫一個監控腳本,監控某站點訪問是否正常。
提示:
1)可以將訪問的站點以參數的形式提供,例如
sh xxx.sh www.aminglinux.com2)狀態碼為2xx或者3xx表示正常
3)正常時echo正常,不正常時echo不正常
【分析】
1)腳本是帶有參數的,第一個參數就是要訪問的站點URL,傳遞的第一個參數,在腳本里用$1表示;
2)獲取站點狀態碼,使用curl工具。其中curl的-I參數只獲取header信息,里面就包含狀態碼。例如:
curl -I 'www.aminglinux.com' HTTP/1.1 301 Moved Permanently Server: nginx Date: Fri, 02 Dec 2022 0337 GMT Content-Type: text/html Content-Length: 162 Connection: keep-alive Location:http://www.apelearn.com/從結果中可以看到,我們想要的狀態碼就在第一行。所以,可以將curl的執行結果通過管道符進一步處理。但在這兒有個問題,curl的結果一旦加上管道符后,那么就會多出來一個如下內容的輸出
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0162000000--:--:----:--:----:--:--0這個內容屬于錯誤輸出內容,需要做一下處理,加一個 2>/dev/null即可。
另外curl訪問一個有問題的URL時,時間比較久,所以有必要給它加一個超時時間,比如設置為3秒,這樣能保證即使這個URL有問題也能在3秒內執行完成。
code=`curl --connect-timeout 3 -I $1 2>/dev/null |grep 'HTTP'|awk '{print $2}'`
最終拿到狀態碼,需要做對比,看是否是2xx或者3xx。我的方法是使用grep做正則匹配:
echo $code |grep -qE '^2[0-9][0-9]|^3[0-9][0-9]'
【參考答案】
#!/bin/bash if ! which curl &>/dev/null then echo "本機沒有安裝curl" yum install -y curl if ! which curl &>/dev/null then echo "沒有安裝成功curl" exit 1 fi fi code=`curl --connect-timeout 3 -I $1 2>/dev/null |grep 'HTTP'|awk '{print $2}'` if echo $code |grep -qE '^2[0-9][0-9]|^3[0-9][0-9]' then echo "$1訪問正常" else echo "$1訪問不正常" fi
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
監控
+關注
關注
6文章
2228瀏覽量
55304 -
腳本
+關注
關注
1文章
391瀏覽量
14916
原文標題:監控你的站點訪問是否正常
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
支持全球探測點的新一代網站監控
摘要: 當你的網站開發完成了,你是不是想知道全國各地到服務器的網絡訪問情況。 當你的網站上線了,你是不是不想變成熊貓眼24小時盯著網站運行情況。 當你的網站商業化了,你是不是想對競爭對
發表于 06-08 16:01
本地站點網格作業監控模塊的設計和實現
為構建基于用戶網格身份的本地站點網格作業監控系統,該文在分析和研究WSRF 規范和WS-GRAM 實現機制的基礎上給出網格作業監控模塊的設計方案和體系結構,并闡述在其原型系統
發表于 04-16 11:21
?18次下載
微軟Chromium Edge用戶可快速訪問站點
據外媒報道,微軟早前正式向Edge瀏覽器的InPrivate、Canary、以及Dev通道推送了必應瀏覽器的私密保護功能,現在用戶可以在新的Edge Chromium中將相關站點固定到Windows任務欄中,由此一來用戶可更快速地訪問自己的常用
基于組態軟件的分布式站點數據監控方案
行業應用項目通常由多個分散在各地的站點組成,每個站點中有PLC(各個品牌和接口類型),網絡攝像頭,采集器和傳感器等組成,需要將現場的數據傳輸到遠端數據中心的組態軟件上實現數據監控,應用場景有防汛
發表于 09-11 10:32
?418次閱讀
如何檢查消防應急燈是否正常工作?
如何檢查消防應急燈是否正常工作? 檢查消防應急燈是否正常工作需要按照以下步驟進行: 一、查看外觀是否完整 首先,要檢查消防應急燈的外觀
恒訊科技分析:云監控系統的站點監控類型有哪些?
云監控系統中的站點監控主要用于檢測和報告關于網站、應用程序或網絡服務的可用性和性能的信息。站點監控類型通常包括以下幾種: 一、HTTP/HT
如何判斷繼電器是否正常工作
判斷繼電器是否正常工作是一個涉及多個方面的過程,主要包括外觀檢查、電氣性能測試以及實際應用中的表現等。以下將從這些方面詳細闡述如何判斷繼電器是否正常工作。
如何測試光纖是否正常
測試光纖是否正常,可以通過多種方法進行,以下是一些常用的測試步驟和方法: 一、觀察指示燈 檢查設備指示燈 :如果你使用的是帶有指示燈的設備(如交換機、光模塊、光纖收發器等),首先觀察指示燈的狀態
評論