在Linux终端快速检测网站是否宕机的6个方法
source link: http://os.51cto.com/art/201912/607483.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
本教程教你怎样在 Linux 终端快速检测一个网站是否宕机。
你可能已经了解了一些类似的命令,像 ping
、 curl
和 wget
。我们在本教程中又加入了一些其他命令。同时,我们也加入了不同的选项来检测单个和多个主机的信息。
本文将帮助你检测网站是否宕机。但是如果你在维护一些网站,希望网站宕掉时得到实时的报警,我推荐你去使用实时网站监控工具。这种工具有很多,有些是免费的,大部分收费。根据你的需求,选择合适的工具。在后续的文章中我们会涉及这个主题。
方法 1:使用 fping 命令检测一个网站是否宕机
fping 命令 是一个类似 ping
的程序,使用互联网控制消息协议(ICMP)的 回应请求报文 echo request 来判断目标主机是否能回应。 fping
与 ping
的不同之处在于它可以并行地 ping
任意数量的主机,也可以从一个文本文件读入主机名称。 fping
发送一个 ICMP 回应请求后不等待目标主机响应,就以轮询模式向下一个目标主机发请求。如果一个目标主机有响应,那么它就被标记为存活的,然后从检查目标列表里去掉。如果一个目标主机在限定的时间和(或)重试次数内没有响应,则被指定为网站无法到达的。
#fping2daygeek.com linuxtechnews.com magesh.co.in 2daygeek.com is alive linuxtechnews.com is alive magesh.co.in is alive
方法 2:使用 http 命令检测一个网站是否宕机
HTTPie(读作 aitch-tee-tee-pie)是一个命令行 HTTP 客户端。 httpie 是一个可以与 web 服务通过 CLI 进行交互的现代工具。httpie 工具提供了简单的 http
命令,可以通过发送简单的、自然语言语法的任意 HTTP 请求得到多彩的结果输出。HTTPie 可以用来对 HTTP 服务器进行测试、调试和基本的交互。
#http2daygeek.com HTTP/1.1 301 Moved Permanently CF-RAY: 535b66722ab6e5fc-LHR Cache-Control:max-age=3600 Connection:keep-alive Date: Thu, 14 Nov 2019 19:30:28GMT Expires: Thu, 14 Nov 2019 20:30:28GMT Location:https://2daygeek.com/ Server:cloudflare Transfer-Encoding:chunked Vary: Accept-Encoding
方法 3:使用 curl 命令检测一个网站是否宕机
curl 命令 是一个用于在服务器间通过支持的协议(DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、SMTP、SMTPS、TELNET 和 TFTP)传输数据的工具。这个工具不支持用户交互。 curl
也支持使用代理、用户认证、FTP 上传、HTTP POST 请求、SSL 连接、cookie、断点续传、Metalink 等等。 curl
由 libcurl 库提供所有与传输有关的能力。
#curl-I https://www.magesh.co.in HTTP/2 200 date: Thu, 14 Nov 2019 19:39:47GMT content-type:text/html set-cookie:__cfduid=db16c3aee6a75c46a504c15131ead3e7f1573760386;expires=Fri, 13-Nov-20 19:39:46GMT;path=/;domain=.magesh.co.in; HttpOnly vary: Accept-Encoding last-modified: Sun, 14 Jun 2015 11:52:38GMT x-cache:HIT from Backend cf-cache-status:DYNAMIC expect-ct:max-age=604800,report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" server:cloudflare cf-ray: 535b74123ca4dbf3-LHR
如果你只想看 HTTP 状态码而不是返回的全部信息,用下面的 curl
命令:
#curl-I"www.magesh.co.in" 2>&1 |awk'/HTTP\// {print $2}' 200
如果你想看一个网站是否宕机,用下面的 bash 脚本:
# vi curl-url-check.sh #!/bin/bash if curl-I"https://www.magesh.co.in" 2>&1 | grep -w "200\|301" ; then echo "magesh.co.in is up" else echo "magesh.co.in is down" fi
当你把脚本内容添加到一个文件后,执行文件,查看结果:
#sh curl-url-check.sh HTTP/2 200 magesh.co.in is up
如果你想看多个网站的状态,使用下面的 shell 脚本:
# vi curl-url-check-1.sh #!/bin/bash for site in www.google.com google.co.in www.xyzzz.com do if curl-I"$site" 2>&1 | grep -w "200\|301" ; then echo "$site is up" else echo "$site is down" fi echo "----------------------------------" done
当你把上面脚本内容添加到一个文件后,执行文件,查看结果:
#sh curl-url-check-1.sh HTTP/1.1 200OK www.google.com is up ---------------------------------- HTTP/1.1 301 Moved Permanently google.co.in is up ---------------------------------- www.xyzzz.com is down ----------------------------------
方法 4:使用 wget 命令检测一个网站是否宕机
wget 命令 (前身是 Geturl)是一个自由开源的命令行下载工具,通过 HTTP、HTTPS、FTP 和其他广泛使用的互联网协议获取文件。 wget
是非交互式的命令行工具,由 World Wide Web 和 get 得名。 wget
相对于其他工具来说更优秀,功能包括后台运行、递归下载、多文件下载、断点续传、非交互式下载和大文件下载。
# wget -S--spider https://www.magesh.co.in Spider mode enabled. Check if remote file exists. --2019-11-15 01:22:00--https://www.magesh.co.in/ Loaded CA certificate'/etc/ssl/certs/ca-certificates.crt' Resolving www.magesh.co.in (www.magesh.co.in)… 104.18.35.52, 104.18.34.52, 2606:4700:30::6812:2334, … Connecting to www.magesh.co.in (www.magesh.co.in)|104.18.35.52|:443…connected. HTTP request sent,awaiting response… HTTP/1.1 200OK Date: Thu, 14 Nov 2019 19:52:01GMT Content-Type:text/html Connection:keep-alive Set-Cookie:__cfduid=db73306a2f1c72c1318ad4709ef49a3a01573761121;expires=Fri, 13-Nov-20 19:52:01GMT;path=/;domain=.magesh.co.in; HttpOnly Vary: Accept-Encoding Last-Modified: Sun, 14 Jun 2015 11:52:38GMT X-Cache:HIT from Backend CF-Cache-Status:DYNAMIC Expect-CT:max-age=604800,report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" Server:cloudflare CF-RAY: 535b85fe381ee684-LHR Length:unspecified[text/html] Remote file exists and could contain further links, but recursion is disabled-- not retrieving.
如果你只想看 HTTP 状态码而不是返回的全部结果,用下面的 wget
命令:
# wget --spider-S"www.magesh.co.in" 2>&1 |awk'/HTTP\// {print $2}' 200
如果你想看一个网站是否宕机,用下面的 bash 脚本:
# vi wget-url-check.sh #!/bin/bash if wget --spider-S"https://www.google.com" 2>&1 | grep -w "200\|301" ; then echo "Google.com is up" else echo "Google.com is down" fi
当你把脚本内容添加到一个文件后,执行文件,查看结果:
# wget-url-check.sh HTTP/1.1 200OK Google.com is up
如果你想看多个网站的状态,使用下面的 shell 脚本:
# vi curl-url-check-1.sh #!/bin/bash for site in www.google.com google.co.in www.xyzzz.com do if wget --spider-S"$site" 2>&1 | grep -w "200\|301" ; then echo "$site is up" else echo "$site is down" fi echo "----------------------------------" done
当你把上面脚本内容添加到一个文件后,执行文件,查看结果:
#sh wget-url-check-1.sh HTTP/1.1 200OK www.google.com is up ---------------------------------- HTTP/1.1 301 Moved Permanently google.co.in is up ---------------------------------- www.xyzzz.com is down ----------------------------------
方法 5:使用 lynx 命令检测一个网站是否宕机
lynx 是一个在 可寻址光标字符单元终端 cursor-addressable character cell terminals 上使用的基于文本的高度可配的 web 浏览器,它是最古老的 web 浏览器并且现在仍在活跃开发。
#lynx-head -dump http://www.magesh.co.in HTTP/1.1 200OK Date: Fri, 15 Nov 2019 08:14:23GMT Content-Type:text/html Connection:close Set-Cookie:__cfduid=df3cb624024b81df7362f42ede71300951573805662;expires=Sat, 1 4-Nov-20 08:14:22GMT;path=/;domain=.magesh.co.in; HttpOnly Vary: Accept-Encoding Last-Modified: Sun, 14 Jun 2015 11:52:38GMT X-Cache:HIT from Backend CF-Cache-Status:DYNAMIC Server:cloudflare CF-RAY: 535fc5704a43e694-LHR
如果你只想看 HTTP 状态码而不是返回的全部结果,用下面的 lynx
命令:
#lynx-head -dump https://www.magesh.co.in 2>&1 | awk '/HTTP\// {print $2}' 200
如果你想看一个网站是否宕机,用下面的 bash 脚本:
# vi lynx-url-check.sh #!/bin/bash if lynx-head -dump http://www.magesh.co.in 2>&1 | grep -w "200\|301" ; then echo "magesh.co.in is up" else echo "magesh.co.in is down" fi
当你把脚本内容添加到一个文件后,执行文件,查看结果:
#sh lynx-url-check.sh HTTP/1.1 200OK magesh.co.in is up
如果你想看多个网站的状态,使用下面的 shell 脚本:
# vi lynx-url-check-1.sh #!/bin/bash for site in http://www.google.com https://google.co.in http://www.xyzzz.com do if lynx-head -dump "$site" 2>&1 | grep -w "200\|301" ; then echo "$site is up" else echo "$site is down" fi echo "----------------------------------" done
当你把上面脚本内容添加到一个文件后,执行文件,查看结果:
#sh lynx-url-check-1.sh HTTP/1.0 200OK http://www.google.com is up ---------------------------------- HTTP/1.0 301 Moved Permanently https://google.co.in is up ---------------------------------- www.xyzzz.com is down ----------------------------------
方法 6:使用 ping 命令检测一个网站是否宕机
ping 命令 (Packet Internet Groper)是网络工具的代表,用于在互联网协议(IP)的网络中测试一个目标主机是否可用/可连接。通过向目标主机发送 ICMP 回应请求报文包并等待 ICMP 回应响应报文来检测主机的可用性。它基于已发送的包、接收到的包和丢失了的包来统计结果数据,通常包含最小/平均/最大响应时间。
# ping -c5 2daygeek.com PING2daygeek.com(104.27.157.177) 56(84)bytes of data. 64bytes from 104.27.157.177 (104.27.157.177):icmp_seq=1ttl=58 time=228ms 64bytes from 104.27.157.177 (104.27.157.177):icmp_seq=2ttl=58 time=227ms 64bytes from 104.27.157.177 (104.27.157.177):icmp_seq=3ttl=58 time=250ms 64bytes from 104.27.157.177 (104.27.157.177):icmp_seq=4ttl=58 time=171ms 64bytes from 104.27.157.177 (104.27.157.177):icmp_seq=5ttl=58 time=193ms --- 2daygeek.com ping statistics--- 5packets transmitted, 5received, 0%packet loss, time 13244ms rtt min/avg/max/mdev= 170.668/213.824/250.295/28.320ms
附加 1:使用 telnet 命令检测一个网站是否宕机
telnet
命令是一个使用 TELNET 协议用于 TCP/IP 网络中多个主机相互通信的古老的网络协议。它通过 23 端口连接其他设备如计算机和网络设备。 telnet
是不安全的协议,现在由于用这个协议发送的数据没有经过加密可能被黑客拦截,所以不推荐使用。大家都使用经过加密且非常安全的 SSH 协议来代替 telnet
。
#telnet google.com80 Trying 216.58.194.46… Connected to google.com. Escape character is '^]'. ^] telnet>quit Connection closed.
附加 2:使用 bash 脚本检测一个网站是否宕机
简而言之,一个 shell 脚本 就是一个包含一系列命令的文件。shell 从文件读取内容按输入顺序逐行在命令行执行。为了让它更有效,我们添加一些条件。这也减轻了 Linux 管理员的负担。
如果你想想用 wget
命令看多个网站的状态,使用下面的 shell 脚本:
# vi wget-url-check-2.sh #!/bin/bash for site in www.google.com google.co.in www.xyzzz.com do if wget --spider-S"$site" 2>&1 | grep -w "200\|301" > /dev/null ; then echo "$site is up" else echo "$site is down" fi done
当你把上面脚本内容添加到一个文件后,执行文件,查看结果:
#sh wget-url-check-2.sh www.google.com is up google.co.in is up www.xyzzz.com is down
如果你想用 wget
命令看多个网站的状态,使用下面的 shell 脚本 :
# vi curl-url-check-2.sh #!/bin/bash for site in www.google.com google.co.in www.xyzzz.com do if curl-I"$site" 2>&1 | grep -w "200\|301" > /dev/null ; then echo "$site is up" else echo "$site is down" fi done
当你把上面脚本内容添加到一个文件后,执行文件,查看结果:
#sh curl-url-check-2.sh www.google.com is up google.co.in is up www.xyzzz.com is down
Recommend
-
10
检测php网站是否已经被攻破的方法 spiderman
-
34
新浪科技讯11月9日上午消息,据多位微博网友反映,百度网站疑似崩溃,PC端、App等平台均打不开。经新浪科技检验,PC端百度网页和移动端百度App已经可以正常使用。宕机期间有网友讨论,这次宕机的发生概率可能与手机网络或服务商有关。新浪科技就
-
49
11月9日上午消息,据多位网友反映,百度网站疑似崩溃,PC端、App等平台均打不开。目前全国各地都有类似故障报告,来自华北访问似乎较为异常,也有来自华东和西北访问正常的描述,海外访问似乎也还正常,因而难以确定故障分布区域。
-
10
北京时间 1 月 11 日晚间,全球最大的合规加密资产交易平台之一 Coinbase 交易系统出现问题。大量用户表示,Coinbase 的网页端以及手机端无法进行包括交易和提现的操作。随后,Coinbase 官方发现该问题,并于北京时间 1 月 11 日 22:46 开始对此问题进行调查。
-
5
我们通常将 Redis 作为缓存使用,提高读取响应性能,一旦 Redis 宕机,内存中的数据全部丢失,假如现在直接访问数据库大量流量打到 MySQL 可能会...
-
4
Redis 日志篇:无畏宕机与快速恢复的杀手锏 特立独行是对的,融入圈子也是对的,重点是要想清楚自己向往怎样的生活,为此愿意付出怎样的代价。 我们通常将 Redis 作为缓存使用,提高读取响应性能,一旦 Redis 宕...
-
4
Facebook 宕机后新闻网站的流量增加了
-
6
现在浏览器内的网站是否已经支持检测本地进程?Google Chrome87% 知友推荐 · 1.3 万人评价Google Chrome是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳...
-
3
密码学系列之:使用openssl检测网站是否支持ocsp OCSP在线证书状态协议是为了替换CRL而提出来的。对于现代web服务器来说一般都是支持OCSP的,OCSP也是现代web服务器的标配。 但是OCSP stapling却不是所有的web服务器都支持。但是现实工作中我们可能...
-
4
【服务器数据恢复】Linux网站服务器硬盘坏扇区导致服务器宕机的数据恢复案例 精选 原创 宋国建...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK