自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在 Linux 終端快速檢測網(wǎng)站是否宕機(jī)的 6 個方法

新聞
本文將幫助你檢測網(wǎng)站是否宕機(jī)。但是如果你在維護(hù)一些網(wǎng)站,希望網(wǎng)站宕掉時得到實(shí)時的報(bào)警,我推薦你去使用實(shí)時網(wǎng)站監(jiān)控工具。

 

你可能已經(jīng)了解了一些類似的命令,像 ping、curl 和 wget。我們在本教程中又加入了一些其他命令。同時,我們也加入了不同的選項(xiàng)來檢測單個和多個主機(jī)的信息。

本文將幫助你檢測網(wǎng)站是否宕機(jī)。但是如果你在維護(hù)一些網(wǎng)站,希望網(wǎng)站宕掉時得到實(shí)時的報(bào)警,我推薦你去使用實(shí)時網(wǎng)站監(jiān)控工具。這種工具有很多,有些是免費(fèi)的,大部分收費(fèi)。根據(jù)你的需求,選擇合適的工具。在后續(xù)的文章中我們會涉及這個主題。

方法 1:使用 fping 命令檢測一個網(wǎng)站是否宕機(jī)

fping 命令 是一個類似 ping 的程序,使用互聯(lián)網(wǎng)控制消息協(xié)議(ICMP)的 回應(yīng)請求報(bào)文(echo request)來判斷目標(biāo)主機(jī)是否能回應(yīng)。fping 與 ping 的不同之處在于它可以并行地 ping 任意數(shù)量的主機(jī),也可以從一個文本文件讀入主機(jī)名稱。fping 發(fā)送一個 ICMP 回應(yīng)請求后不等待目標(biāo)主機(jī)響應(yīng),就以輪詢模式向下一個目標(biāo)主機(jī)發(fā)請求。如果一個目標(biāo)主機(jī)有響應(yīng),那么它就被標(biāo)記為存活的,然后從檢查目標(biāo)列表里去掉。如果一個目標(biāo)主機(jī)在限定的時間和(或)重試次數(shù)內(nèi)沒有響應(yīng),則被指定為網(wǎng)站無法到達(dá)的。

  1. # fping 2daygeek.com linuxtechnews.com magesh.co.in 
  2.  
  3. 2daygeek.com is alive 
  4. linuxtechnews.com is alive 
  5. magesh.co.in is alive 

方法 2:使用 http 命令檢測一個網(wǎng)站是否宕機(jī)

HTTPie(讀作 aitch-tee-tee-pie)是一個命令行 HTTP 客戶端。 httpie 是一個可以與 web 服務(wù)通過 CLI 進(jìn)行交互的現(xiàn)代工具。httpie 工具提供了簡單的 http 命令,可以通過發(fā)送簡單的、自然語言語法的任意 HTTP 請求得到多彩的結(jié)果輸出。HTTPie 可以用來對 HTTP 服務(wù)器進(jìn)行測試、調(diào)試和基本的交互。

  1. # http 2daygeek.com 
  2.  
  3. HTTP/1.1 301 Moved Permanently 
  4. CF-RAY: 535b66722ab6e5fc-LHR 
  5. Cache-Control: max-age=3600 
  6. Connection: keep-alive 
  7. Date: Thu, 14 Nov 2019 19:30:28 GMT 
  8. Expires: Thu, 14 Nov 2019 20:30:28 GMT 
  9. Location: https://2daygeek.com/ 
  10. Server: cloudflare 
  11. Transfer-Encoding: chunked 
  12. Vary: Accept-Encoding 

方法 3:使用 curl 命令檢測一個網(wǎng)站是否宕機(jī)

curl 命令 是一個用于在服務(wù)器間通過支持的協(xié)議(DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、SMTP、SMTPS、TELNET 和 TFTP)傳輸數(shù)據(jù)的工具。這個工具不支持用戶交互。curl 也支持使用代理、用戶認(rèn)證、FTP 上傳、HTTP POST 請求、SSL 連接、cookie、斷點(diǎn)續(xù)傳、Metalink 等等。curl由 libcurl 庫提供所有與傳輸有關(guān)的能力。

  1. # curl -I https://www.magesh.co.in 
  2.  
  3. HTTP/2 200 
  4. date: Thu, 14 Nov 2019 19:39:47 GMT 
  5. content-type: text/html 
  6. set-cookie: __cfduid=db16c3aee6a75c46a504c15131ead3e7f1573760386; expires=Fri, 13-Nov-20 19:39:46 GMT; path=/; domain=.magesh.co.in; HttpOnly 
  7. vary: Accept-Encoding 
  8. last-modified: Sun, 14 Jun 2015 11:52:38 GMT 
  9. x-cache: HIT from Backend 
  10. cf-cache-status: DYNAMIC 
  11. expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" 
  12. server: cloudflare 
  13. cf-ray: 535b74123ca4dbf3-LHR 

如果你只想看 HTTP 狀態(tài)碼而不是返回的全部信息,用下面的 curl 命令:

  1. # curl -I "www.magesh.co.in" 2>&1 | awk '/HTTP\// {print $2}' 
  2.  200 

如果你想看一個網(wǎng)站是否宕機(jī),用下面的 bash 腳本:

  1. # vi curl-url-check.sh 
  2.  
  3. #!/bin/bash 
  4. if curl -I "https://www.magesh.co.in" 2>&1 | grep -w "200\|301" ; then 
  5.  echo "magesh.co.in is up" 
  6. else 
  7.  echo "magesh.co.in is down" 
  8. fi 

當(dāng)你把腳本內(nèi)容添加到一個文件后,執(zhí)行文件,查看結(jié)果:

  1. # sh curl-url-check.sh 
  2.  
  3. HTTP/2 200 
  4. magesh.co.in is up 

如果你想看多個網(wǎng)站的狀態(tài),使用下面的 shell 腳本:

  1. # vi curl-url-check-1.sh 
  2.  
  3. #!/bin/bash 
  4. for site in www.google.com google.co.in www.xyzzz.com 
  5. do 
  6. if curl -I "$site" 2>&1 | grep -w "200\|301" ; then 
  7.  echo "$site is up" 
  8. else 
  9.  echo "$site is down" 
  10. fi 
  11. echo "----------------------------------" 
  12. done 

當(dāng)你把上面腳本內(nèi)容添加到一個文件后,執(zhí)行文件,查看結(jié)果:

  1. # sh curl-url-check-1.sh 
  2.  
  3. HTTP/1.1 200 OK 
  4. www.google.com is up 
  5. ---------------------------------- 
  6. HTTP/1.1 301 Moved Permanently 
  7. google.co.in is up 
  8. ---------------------------------- 
  9. www.xyzzz.com is down 
  10. ---------------------------------- 

方法 4:使用 wget 命令檢測一個網(wǎng)站是否宕機(jī)

wget 命令 (前身是 Geturl)是一個自由開源的命令行下載工具,通過 HTTP、HTTPS、FTP 和其他廣泛使用的互聯(lián)網(wǎng)協(xié)議獲取文件。wget 是非交互式的命令行工具,由 World Wide Web 和 get 得名。wget 相對于其他工具來說更優(yōu)秀,功能包括后臺運(yùn)行、遞歸下載、多文件下載、斷點(diǎn)續(xù)傳、非交互式下載和大文件下載。

  1. # wget -S --spider https://www.magesh.co.in 
  2.  
  3. Spider mode enabled. Check if remote file exists. 
  4. --2019-11-15 01:22:00-- https://www.magesh.co.in/ 
  5. Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt' 
  6. Resolving www.magesh.co.in (www.magesh.co.in)… 104.18.35.52104.18.34.522606:4700:30::6812:2334, … 
  7. Connecting to www.magesh.co.in (www.magesh.co.in)|104.18.35.52|:443… connected. 
  8. HTTP request sent, awaiting response… 
  9.  HTTP/1.1 200 OK 
  10.  Date: Thu, 14 Nov 2019 19:52:01 GMT 
  11.  Content-Type: text/html 
  12.  Connection: keep-alive 
  13.  Set-Cookie: __cfduid=db73306a2f1c72c1318ad4709ef49a3a01573761121; expires=Fri, 13-Nov-20 19:52:01 GMT; path=/; domain=.magesh.co.in; HttpOnly 
  14.  Vary: Accept-Encoding 
  15.  Last-Modified: Sun, 14 Jun 2015 11:52:38 GMT 
  16.  X-Cache: HIT from Backend 
  17.  CF-Cache-Status: DYNAMIC 
  18.  Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" 
  19.  Server: cloudflare 
  20.  CF-RAY: 535b85fe381ee684-LHR 
  21. Length: unspecified [text/html] 
  22. Remote file exists and could contain further links, 
  23. but recursion is disabled -- not retrieving. 

如果你只想看 HTTP 狀態(tài)碼而不是返回的全部結(jié)果,用下面的 wget 命令:

  1. # wget --spider -S "www.magesh.co.in" 2>&1 | awk '/HTTP\// {print $2}' 
  2.  200 

如果你想看一個網(wǎng)站是否宕機(jī),用下面的 bash 腳本:

  1. # vi wget-url-check.sh 
  2.  
  3. #!/bin/bash 
  4. if wget --spider -S "https://www.google.com" 2>&1 | grep -w "200\|301" ; then 
  5.  echo "Google.com is up" 
  6. else 
  7.  echo "Google.com is down" 
  8. fi 

當(dāng)你把腳本內(nèi)容添加到一個文件后,執(zhí)行文件,查看結(jié)果:

  1. # wget-url-check.sh 
  2.  
  3. HTTP/1.1 200 OK 
  4. Google.com is up 

如果你想看多個網(wǎng)站的狀態(tài),使用下面的 shell 腳本:

  1. # vi curl-url-check-1.sh 
  2.  
  3. #!/bin/bash 
  4. for site in www.google.com google.co.in www.xyzzz.com 
  5. do 
  6. if wget --spider -S "$site" 2>&1 | grep -w "200\|301" ; then 
  7.  echo "$site is up" 
  8. else 
  9.  echo "$site is down" 
  10. fi 
  11. echo "----------------------------------" 
  12. done 

當(dāng)你把上面腳本內(nèi)容添加到一個文件后,執(zhí)行文件,查看結(jié)果:

  1. # sh wget-url-check-1.sh 
  2.  
  3. HTTP/1.1 200 OK 
  4. www.google.com is up 
  5. ---------------------------------- 
  6. HTTP/1.1 301 Moved Permanently 
  7. google.co.in is up 
  8. ---------------------------------- 
  9. www.xyzzz.com is down 
  10. ---------------------------------- 

方法 5:使用 lynx 命令檢測一個網(wǎng)站是否宕機(jī)

lynx 是一個在 可尋址光標(biāo)字符單元終端(cursor-addressable character cell terminals)上使用的基于文本的高度可配的 web 瀏覽器,它是最古老的 web 瀏覽器并且現(xiàn)在仍在活躍開發(fā)。

  1. # lynx -head -dump http://www.magesh.co.in 
  2.  
  3. HTTP/1.1 200 OK 
  4. Date: Fri, 15 Nov 2019 08:14:23 GMT 
  5. Content-Type: text/html 
  6. Connection: close 
  7. Set-Cookie: __cfduid=df3cb624024b81df7362f42ede71300951573805662; expires=Sat, 1 
  8. 4-Nov-20 08:14:22 GMT; path=/; domain=.magesh.co.in; HttpOnly 
  9. Vary: Accept-Encoding 
  10. Last-Modified: Sun, 14 Jun 2015 11:52:38 GMT 
  11. X-Cache: HIT from Backend 
  12. CF-Cache-Status: DYNAMIC 
  13. Server: cloudflare 
  14. CF-RAY: 535fc5704a43e694-LHR 

如果你只想看 HTTP 狀態(tài)碼而不是返回的全部結(jié)果,用下面的 lynx 命令:

  1. # lynx -head -dump https://www.magesh.co.in 2>&1 | awk '/HTTP\// {print $2}' 
  2.  200 

如果你想看一個網(wǎng)站是否宕機(jī),用下面的 bash 腳本:

  1. # vi lynx-url-check.sh 
  2.  
  3. #!/bin/bash 
  4. if lynx -head -dump http://www.magesh.co.in 2>&1 | grep -w "200\|301" ; then 
  5.  echo "magesh.co.in is up" 
  6. else 
  7.  echo "magesh.co.in is down" 
  8. fi 

當(dāng)你把腳本內(nèi)容添加到一個文件后,執(zhí)行文件,查看結(jié)果:

  1. # sh lynx-url-check.sh 
  2.  
  3. HTTP/1.1 200 OK 
  4. magesh.co.in is up 

如果你想看多個網(wǎng)站的狀態(tài),使用下面的 shell 腳本:

  1. # vi lynx-url-check-1.sh 
  2.  
  3. #!/bin/bash 
  4. for site in http://www.google.com https://google.co.in http://www.xyzzz.com 
  5. do 
  6. if lynx -head -dump "$site" 2>&1 | grep -w "200\|301" ; then 
  7.  echo "$site is up" 
  8. else 
  9.  echo "$site is down" 
  10. fi 
  11. echo "----------------------------------" 
  12. done 

當(dāng)你把上面腳本內(nèi)容添加到一個文件后,執(zhí)行文件,查看結(jié)果:

  1. # sh lynx-url-check-1.sh 
  2.  
  3. HTTP/1.0 200 OK 
  4. http://www.google.com is up 
  5. ---------------------------------- 
  6. HTTP/1.0 301 Moved Permanently 
  7. https://google.co.in is up 
  8. ---------------------------------- 
  9. www.xyzzz.com is down 
  10. ---------------------------------- 

方法 6:使用 ping 命令檢測一個網(wǎng)站是否宕機(jī)

ping 命令 (Packet Internet Groper)是網(wǎng)絡(luò)工具的代表,用于在互聯(lián)網(wǎng)協(xié)議(IP)的網(wǎng)絡(luò)中測試一個目標(biāo)主機(jī)是否可用/可連接。通過向目標(biāo)主機(jī)發(fā)送 ICMP 回應(yīng)請求報(bào)文包并等待 ICMP 回應(yīng)響應(yīng)報(bào)文來檢測主機(jī)的可用性。它基于已發(fā)送的包、接收到的包和丟失了的包來統(tǒng)計(jì)結(jié)果數(shù)據(jù),通常包含最小/平均/最大響應(yīng)時間。

  1. # ping -c 5 2daygeek.com 
  2.  
  3. PING 2daygeek.com (104.27.157.17756(84) bytes of data. 
  4. 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=1 ttl=58 time=228 ms 
  5. 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=2 ttl=58 time=227 ms 
  6. 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=3 ttl=58 time=250 ms 
  7. 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=4 ttl=58 time=171 ms 
  8. 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=5 ttl=58 time=193 ms 
  9.  
  10. --- 2daygeek.com ping statistics --- 
  11. 5 packets transmitted, 5 received, 0% packet loss, time 13244ms 
  12. rtt min/avg/max/mdev = 170.668/213.824/250.295/28.320 ms 

附加 1:使用 telnet 命令檢測一個網(wǎng)站是否宕機(jī)

telnet 命令是一個使用 TELNET 協(xié)議用于 TCP/IP 網(wǎng)絡(luò)中多個主機(jī)相互通信的古老的網(wǎng)絡(luò)協(xié)議。它通過 23 端口連接其他設(shè)備如計(jì)算機(jī)和網(wǎng)絡(luò)設(shè)備。telnet 是不安全的協(xié)議,現(xiàn)在由于用這個協(xié)議發(fā)送的數(shù)據(jù)沒有經(jīng)過加密可能被黑客攔截,所以不推薦使用。大家都使用經(jīng)過加密且非常安全的 SSH 協(xié)議來代替 telnet。

  1. # telnet google.com 80 
  2.  
  3. Trying 216.58.194.46… 
  4. Connected to google.com. 
  5. Escape character is '^]'
  6. ^] 
  7. telnet> quit 
  8. Connection closed. 

附加 2:使用 bash 腳本檢測一個網(wǎng)站是否宕機(jī)

簡而言之,一個 shell 腳本 就是一個包含一系列命令的文件。shell 從文件讀取內(nèi)容按輸入順序逐行在命令行執(zhí)行。為了讓它更有效,我們添加一些條件。這也減輕了 Linux 管理員的負(fù)擔(dān)。

如果你想想用 wget 命令看多個網(wǎng)站的狀態(tài),使用下面的 shell 腳本:

  1. # vi wget-url-check-2.sh 
  2.  
  3. #!/bin/bash 
  4. for site in www.google.com google.co.in www.xyzzz.com 
  5. do 
  6. if wget --spider -S "$site" 2>&1 | grep -w "200\|301" > /dev/null ; then 
  7.  echo "$site is up" 
  8. else 
  9.  echo "$site is down" 
  10. fi 
  11. done 

當(dāng)你把上面腳本內(nèi)容添加到一個文件后,執(zhí)行文件,查看結(jié)果:

  1. # sh wget-url-check-2.sh 
  2.  
  3. www.google.com is up 
  4. google.co.in is up 
  5. www.xyzzz.com is down 

如果你想用 wget 命令看多個網(wǎng)站的狀態(tài),使用下面的 shell 腳本 :

  1. # vi curl-url-check-2.sh 
  2.  
  3. #!/bin/bash 
  4. for site in www.google.com google.co.in www.xyzzz.com 
  5. do 
  6. if curl -I "$site" 2>&1 | grep -w "200\|301" > /dev/null ; then 
  7.  echo "$site is up" 
  8. else 
  9.  echo "$site is down" 
  10. fi 
  11. done 

當(dāng)你把上面腳本內(nèi)容添加到一個文件后,執(zhí)行文件,查看結(jié)果:

  1. # sh curl-url-check-2.sh 
  2.  
  3. www.google.com is up 
  4. google.co.in is up 
  5. www.xyzzz.com is down 

 

 

責(zé)任編輯:張燕妮 來源: Linux中國
相關(guān)推薦

2019-12-10 10:05:00

Linux終端檢測網(wǎng)站宕機(jī)

2009-06-25 08:58:03

Linux

2009-06-30 10:35:36

Linux

2009-06-29 09:21:41

Linux

2018-11-01 09:45:40

2020-02-05 08:00:00

LinuxMacOSWindows

2022-04-20 10:43:24

Linux命令

2014-12-23 09:43:33

linux監(jiān)控工具

2011-06-29 16:31:20

網(wǎng)站排名

2021-05-04 21:28:23

釣魚網(wǎng)站網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2014-10-31 10:50:28

Linux命令行工具

2009-07-01 09:13:10

Linux

2023-03-04 13:32:35

Linux創(chuàng)建目錄

2019-01-21 10:34:13

Linux運(yùn)算命令

2021-08-24 16:20:38

Linux終端

2021-09-13 09:30:09

Linux調(diào)整圖像ImageMagick

2022-02-25 07:38:35

Linux

2022-04-18 16:28:30

Linux

2020-05-21 15:20:27

Linux終端系統(tǒng)

2009-06-05 11:11:11

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號