今日練習題
【需求】
寫一個監(jiān)控腳本,監(jiān)控某站點訪問是否正常。
提示:
1)可以將訪問的站點以參數(shù)的形式提供,例如
sh xxx.sh www.aminglinux.com2)狀態(tài)碼為2xx或者3xx表示正常
3)正常時echo正常,不正常時echo不正常
【分析】
1)腳本是帶有參數(shù)的,第一個參數(shù)就是要訪問的站點URL,傳遞的第一個參數(shù),在腳本里用$1表示;
2)獲取站點狀態(tài)碼,使用curl工具。其中curl的-I參數(shù)只獲取header信息,里面就包含狀態(tài)碼。例如:
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/從結(jié)果中可以看到,我們想要的狀態(tài)碼就在第一行。所以,可以將curl的執(zhí)行結(jié)果通過管道符進一步處理。但在這兒有個問題,curl的結(jié)果一旦加上管道符后,那么就會多出來一個如下內(nèi)容的輸出
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0162000000--:--:----:--:----:--:--0
這個內(nèi)容屬于錯誤輸出內(nèi)容,需要做一下處理,加一個 2>/dev/null即可。另外curl訪問一個有問題的URL時,時間比較久,所以有必要給它加一個超時時間,比如設(shè)置為3秒,這樣能保證即使這個URL有問題也能在3秒內(nèi)執(zhí)行完成。
code=`curl --connect-timeout 3 -I $1 2>/dev/null |grep 'HTTP'|awk '{print $2}'`
最終拿到狀態(tài)碼,需要做對比,看是否是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
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
監(jiān)控
+關(guān)注
關(guān)注
6文章
2369瀏覽量
59233 -
腳本
+關(guān)注
關(guān)注
1文章
407瀏覽量
29120
原文標題:監(jiān)控你的站點訪問是否正常
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
支持全球探測點的新一代網(wǎng)站監(jiān)控
摘要: 當你的網(wǎng)站開發(fā)完成了,你是不是想知道全國各地到服務(wù)器的網(wǎng)絡(luò)訪問情況。 當你的網(wǎng)站上線了,你是不是不想變成熊貓眼24小時盯著網(wǎng)站運行情況。 當你的網(wǎng)站商業(yè)化了,你是不是想對競爭對
發(fā)表于 06-08 16:01
本地站點網(wǎng)格作業(yè)監(jiān)控模塊的設(shè)計和實現(xiàn)
為構(gòu)建基于用戶網(wǎng)格身份的本地站點網(wǎng)格作業(yè)監(jiān)控系統(tǒng),該文在分析和研究WSRF 規(guī)范和WS-GRAM 實現(xiàn)機制的基礎(chǔ)上給出網(wǎng)格作業(yè)監(jiān)控模塊的設(shè)計方案和體系結(jié)構(gòu),并闡述在其原型系統(tǒng)
發(fā)表于 04-16 11:21
?18次下載
迅馳本本發(fā)熱巨大是否正常
迅馳本本發(fā)熱巨大是否正常
想問下,我的IBMX31筆記本發(fā)熱很大,正常嗎? 你所指的發(fā)熱量很大是以什么標準來衡量呢?
發(fā)表于 01-25 10:49
?716次閱讀
微軟Chromium Edge用戶可快速訪問站點
據(jù)外媒報道,微軟早前正式向Edge瀏覽器的InPrivate、Canary、以及Dev通道推送了必應(yīng)瀏覽器的私密保護功能,現(xiàn)在用戶可以在新的Edge Chromium中將相關(guān)站點固定到Windows任務(wù)欄中,由此一來用戶可更快速地訪問自己的常用
基于組態(tài)軟件的分布式站點數(shù)據(jù)監(jiān)控方案
行業(yè)應(yīng)用項目通常由多個分散在各地的站點組成,每個站點中有PLC(各個品牌和接口類型),網(wǎng)絡(luò)攝像頭,采集器和傳感器等組成,需要將現(xiàn)場的數(shù)據(jù)傳輸?shù)竭h端數(shù)據(jù)中心的組態(tài)軟件上實現(xiàn)數(shù)據(jù)監(jiān)控,應(yīng)用場景有防汛
發(fā)表于 09-11 10:32
?633次閱讀
基于RFID的訪問控制和監(jiān)控系統(tǒng)
電子發(fā)燒友網(wǎng)站提供《基于RFID的訪問控制和監(jiān)控系統(tǒng).zip》資料免費下載
發(fā)表于 11-28 09:53
?0次下載
如何檢查消防應(yīng)急燈是否正常工作?
如何檢查消防應(yīng)急燈是否正常工作? 檢查消防應(yīng)急燈是否正常工作需要按照以下步驟進行: 一、查看外觀是否完整 首先,要檢查消防應(yīng)急燈的外觀
恒訊科技分析:云監(jiān)控系統(tǒng)的站點監(jiān)控類型有哪些?
云監(jiān)控系統(tǒng)中的站點監(jiān)控主要用于檢測和報告關(guān)于網(wǎng)站、應(yīng)用程序或網(wǎng)絡(luò)服務(wù)的可用性和性能的信息。站點監(jiān)控類型通常包括以下幾種: 一、HTTP/HT
如何判斷繼電器是否正常工作
判斷繼電器是否正常工作是一個涉及多個方面的過程,主要包括外觀檢查、電氣性能測試以及實際應(yīng)用中的表現(xiàn)等。以下將從這些方面詳細闡述如何判斷繼電器是否正常工作。
如何測試光纖是否正常
測試光纖是否正常,可以通過多種方法進行,以下是一些常用的測試步驟和方法: 一、觀察指示燈 檢查設(shè)備指示燈 :如果你使用的是帶有指示燈的設(shè)備(如交換機、光模塊、光纖收發(fā)器等),首先觀察指示燈的狀態(tài)
宏集方案 | 跨站點協(xié)同遇難題?宏集物聯(lián)網(wǎng)HMI異地遠程管理和監(jiān)控套裝幫您解決!
集物聯(lián)網(wǎng)HMI異地遠程管理和監(jiān)控套裝應(yīng)運而生。通過遠程訪問,企業(yè)管理者和技術(shù)人員能夠隨時了解生產(chǎn)設(shè)備的運行狀況,實現(xiàn)遠程監(jiān)控,從而實現(xiàn)無人車間的搭建或跨站點
監(jiān)控你的站點訪問是否正常
評論