今日練習(xí)題
【需求】
寫一個(gè)監(jiān)控腳本,監(jiān)控某站點(diǎn)訪問是否正常。
提示:
1)可以將訪問的站點(diǎn)以參數(shù)的形式提供,例如
sh xxx.sh www.aminglinux.com2)狀態(tài)碼為2xx或者3xx表示正常
3)正常時(shí)echo正常,不正常時(shí)echo不正常
【分析】
1)腳本是帶有參數(shù)的,第一個(gè)參數(shù)就是要訪問的站點(diǎn)URL,傳遞的第一個(gè)參數(shù),在腳本里用$1表示;
2)獲取站點(diǎn)狀態(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é)果通過管道符進(jìn)一步處理。但在這兒有個(gè)問題,curl的結(jié)果一旦加上管道符后,那么就會多出來一個(gè)如下內(nèi)容的輸出
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0162000000--:--:----:--:----:--:--0這個(gè)內(nèi)容屬于錯(cuò)誤輸出內(nèi)容,需要做一下處理,加一個(gè) 2>/dev/null即可。
另外curl訪問一個(gè)有問題的URL時(shí),時(shí)間比較久,所以有必要給它加一個(gè)超時(shí)時(shí)間,比如設(shè)置為3秒,這樣能保證即使這個(gè)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 "本機(jī)沒有安裝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
審核編輯:湯梓紅
-
監(jiān)控
+關(guān)注
關(guān)注
6文章
2319瀏覽量
57553 -
腳本
+關(guān)注
關(guān)注
1文章
398瀏覽量
28471
原文標(biāo)題:監(jiān)控你的站點(diǎn)訪問是否正常
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
是否有可能讀取ESP當(dāng)前連接到的站點(diǎn)的RSSI?
支持全球探測點(diǎn)的新一代網(wǎng)站監(jiān)控
無法訪問該站點(diǎn)以下載打開的stm32系統(tǒng)工作臺如何解決
本地站點(diǎn)網(wǎng)格作業(yè)監(jiān)控模塊的設(shè)計(jì)和實(shí)現(xiàn)
迅馳本本發(fā)熱巨大是否正常
微軟Chromium Edge用戶可快速訪問站點(diǎn)
基于組態(tài)軟件的分布式站點(diǎn)數(shù)據(jù)監(jiān)控方案
智慧農(nóng)村污水站點(diǎn)監(jiān)控方案設(shè)計(jì)
基于RFID的訪問控制和監(jiān)控系統(tǒng)

評論