使用Shell指令碼程式監控網站URL是否正常
監控網站URL是否正常最常見的方法莫過於wget和curl 了,這兩個 都是非常強大的,強大到網友檢視幫助都無從選擇的地步了,今天呢,老男孩老師正好錄製 程式設計實戰課程。 |
wget命令
wget命令的引數非常多,至少也有數十個, 但是運維工作中常用的並不多,老男孩老師把最有用的列表如下。
wget命令 下載網頁或檔案 --spider 模擬爬蟲的行為去訪問網站,但不會下載網頁 -q, --quiet 安靜的訪問,禁止輸出,類似-o /dev/null功能 -o, --output-file=FILE 記錄輸出到檔案 -T, --timeout=SECONDS 訪問網站的超時時間 -t, --tries=NUMBER 當網站異常時重試網站的次數
實際監控方法如下:利用wget命令返回值確定網站是否正常
[root@oldboy ~]# wget --spider -T 5 -q -t 2 [root@oldboy ~]# echo $? #< ==利用返回值確定網站是否正常。 0
curl命令
curl命令的引數比wget的引數還多,但運維中常用的引數也並不多,因此也是列表如下:
curl命令 訪問網站url -I/--head 顯示響應頭資訊 -m/--max-time 訪問超時的時間 -o/--output 記錄訪問資訊到檔案 -s/--silent 沉默模式訪問,就是不輸出資訊 -w/--write-out 以固定特殊的格式輸出,例如:%{http_code},輸出狀態碼
實際監控方法
1、利用curl命令返回值確定網站是否正常
[root@oldboy ~]# curl -s -o /dev/null [root@oldboy ~]# echo $? 0
2、獲取命令執行後的狀態碼(200表示正常)
[root@oldboy ~]# curl -I -m 5 -s -w "%{http_code}\n" -o /dev/null 200
3 開發 實現監控指定的URL是否正常
解答: 方法1: #!/bin/sh function usage() { #< ==幫助函式 echo $"usage:$0 url" exit 1 } function check_url() { #<==檢測URL函式。 wget --spider -q -o /dev/null --tries=1 -T 5 $1 #<==採用wget返回值方法,這裡的$1就是函式傳參。 #curl -s -o /dev/null $1 #<==採用curl返回值方法也是可以的。 if [ $? -eq 0 ] then echo "$1 is yes." exit 0 else echo "$1 is fail." exit 1 fi } function main() { #<==主函式。 if [ $# -ne 1 ] #<==如果傳入的多個引數,則列印幫助函式,提示使用者。 then usage fi check_url $1 #<==接收函式的傳參,即把結尾的$*傳到這裡。 } main $* #<==這裡的$*就是把命令列接收的所有引數作為函式引數傳給函式內部,常用手法。
實踐結果
[root@oldboy ~]# sh checkurl.sh is ok [root@oldboy ~]# sh checkurl.sh is ok [root@oldboy ~]# sh checkurl.sh 10.0.0.8 10.0.0.8 is fail 方法2: [root@oldboy ~]# cat checkurl1.sh #!/bin/bash ############################################################## # File Name: checkurl.sh # Version: V1.0 # Author: oldboy # Organization: # Created Time : 2018-06-07 18:29:19 ############################################################## usage(){ echo "Usage:$0 url" exit 1 } checkurl(){ local num=`curl -I -m 5 -s -w "%{http_code}\n" -o /dev/null|grep 200|wc -l` if [ $num -eq 1 ] #< ==採用獲取狀態碼,並轉為數字的方式判斷,如果301認為正確也可以加上egrep過濾。 then echo "$1 is ok" else echo "$1 is fail" fi } main(){ if [ $# -ne 1 ] then usage fi checkurl $1 } main $*
實踐結果
[root@oldboy ~]# sh checkurl.sh is ok [root@oldboy ~]# sh checkurl.sh is ok [root@oldboy ~]# sh checkurl.sh 10.0.0.8 10.0.0.8 is fail
如果網友能否讀懂本文,相信以後再寫監控網站URL的 就會很輕鬆了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2650899/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 教你如何監控網站URL是否正常網站
- shell指令碼:監控MySQL服務是否正常指令碼MySql
- 分享實用監控指令碼:使用Shell檢查程式是否存在指令碼
- centos 監控web站點是否500 指令碼CentOSWeb指令碼
- 【shell】磁碟監控指令碼指令碼
- 監控磁碟使用率的shell指令碼指令碼
- shell監控服務程式是否啟動
- Shell 系統資訊監控指令碼指令碼
- Shell指令碼監控MySQL主從狀態指令碼MySql
- 用於自動監控磁碟使用情況的 Shell 指令碼指令碼
- shell指令碼監控啟動停止weblogic服務指令碼Web
- 透過shell指令碼監控日誌切換頻率指令碼
- 用 Linux Shell 指令碼來監控磁碟使用情況併傳送郵件Linux指令碼
- upptime:使用GitHub Actions監控你的網站健康監控Github網站
- 如何使用 Blackbox Exporter 監控 URL?Export
- 利用 Shell 指令碼來監控 Linux 系統的記憶體指令碼Linux記憶體
- 網路卡流量監控指令碼,python實現指令碼Python
- 網站監控網站劫持,網站監控網站劫持有哪些需要注意的網站
- Linux shell指令碼判斷伺服器網路是否可以上網Linux指令碼伺服器
- 如何用bash shell 指令碼監控 Linux記憶體、磁碟和 CPU?指令碼Linux記憶體
- 網站增加程式碼監測網站
- 網站安全監控的方法講解,網站安全監控技術網站
- PostgreSQL之鎖監控指令碼SQL指令碼
- 通用程式部署shell指令碼指令碼
- 如何進行網站的真實使用者監控(RUM)?怎麼進入監控網站網站
- 使用Shell指令碼查詢程式對應的程式ID指令碼
- 寫了個監控 ElasticSearch 程式異常的指令碼!Elasticsearch指令碼
- 程式碼上線的shell指令碼指令碼
- 監控系統告警指令碼集合指令碼
- Shell 指令碼程式設計陷阱指令碼程式設計
- Shell指令碼介紹與使用指令碼
- Shell 指令碼程式併發&程式數控制指令碼
- 使用shell指令碼在Linux中管理Java應用程式指令碼LinuxJava
- shell指令碼指令碼
- [ Shell ] 通過 Shell 指令碼匯出 CDL 網表指令碼
- 正常執行時間監控
- 【網路安全】Shell 指令碼學習指令碼
- shell指令碼程式設計筆記指令碼程式設計筆記