你可能已经了解了一些类似的命令,像ping、curl和wget。我们在本教程中又加入了一些其他命令。同时,我们也加入了不同的选项来检测单个和多个主机的信息。
本文将帮助你检测网站是否宕机。但是如果你在维护一些网站,希望网站宕掉时得到实时的报警,我推荐你去使用实时网站监控工具。这种工具有很多,有些是免费的,大部分收费。根据你的需求,选择合适的工具。在后续的文章中我们会涉及这个主题。
方法1:使用fping命令检测一个网站是否宕机fping命令是一个类似ping的程序,使用互联网控制消息协议(ICMP)的回应请求报文(echorequest)来判断目标主机是否能回应。fping与ping的不同之处在于它可以并行地ping任意数量的主机,也可以从一个文本文件读入主机名称。fping发送一个ICMP回应请求后不等待目标主机响应,就以轮询模式向下一个目标主机发请求。如果一个目标主机有响应,那么它就被标记为存活的,然后从检查目标列表里去掉。如果一个目标主机在限定的时间和(或)重试次数内没有响应,则被指定为网站无法到达的。
/1.1301MovedPermanentlyCF-RAY:535b66722ab6e5fc-LHRCache-Control:max-age=3600Connection:keep-aliveDate:Thu,14Nov201919:30:28GMTExpires:Thu,14Nov201920:30:28GMTLocation:方法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上传、HTTPPOST请求、SSL连接、cookie、断点续传、Metalink等等。curl由libcurl库提供所有与传输有关的能力。
curl-I""21|awk'/HTTP\//{print$2}'200如果你想看一个网站是否宕机,用下面的bash脚本:
!/bin/bashifcurl-I""21|grep-w"200\|301";thenecho""elseecho""fi
当你把脚本内容添加到一个文件后,执行文件,查看结果:
/1.1200/1.1301方法4:使用wget命令检测一个网站是否宕机
wget命令(前身是Geturl)是一个自由开源的命令行下载工具,通过HTTP、HTTPS、FTP和其他广泛使用的互联网协议获取文件。wget是非交互式的命令行工具,由WorldWideWeb和get得名。wget相对于其他工具来说更优秀,功能包括后台运行、递归下载、多文件下载、断点续传、非交互式下载和大文件下载。
wget--spider-S""21|awk'/HTTP\//{print$2}'200如果你想看一个网站是否宕机,用下面的bash脚本:
!/bin/bashifwget--spider-S""21|grep-w"200\|301";thenecho""elseecho""fi
当你把脚本内容添加到一个文件后,执行文件,查看结果:
/1.1200/1.1301方法5:使用lynx命令检测一个网站是否宕机
lynx是一个在可寻址光标字符单元终端(cursor-addressablecharactercellterminals)上使用的基于文本的高度可配的web浏览器,它是最古老的web浏览器并且现在仍在活跃开发。
lynx-head-dump;1|awk'/HTTP\//{print$2}'200如果你想看一个网站是否宕机,用下面的bash脚本:
!/bin/bashiflynx-head-dump;1|grep-w"200\|301";thenecho""elseecho""fi
当你把脚本内容添加到一个文件后,执行文件,查看结果:
/1.0200OK方法6:使用ping命令检测一个网站是否宕机
ping命令(PacketInternetGroper)是网络工具的代表,用于在互联网协议(IP)的网络中测试一个目标主机是否可用/可连接。通过向目标主机发送ICMP回应请求报文包并等待ICMP回应响应报文来检测主机的可用性。它基于已发送的包、接收到的包和丢失了的包来统计结果数据,通常包含最小/平均/最大响应时间。
…'^]'.^]telnetquitConnectionclosed.附加2:使用bash脚本检测一个网站是否宕机
简而言之,一个shell脚本就是一个包含一系列命令的文件。shell从文件读取内容按输入顺序逐行在命令行执行。为了让它更有效,我们添加一些条件。这也减轻了Linux管理员的负担。
如果你想想用wget命令看多个网站的状态,使用下面的shell脚本:
!/bin/"$site"21|grep-w"200\|301"/dev/null;thenecho"$siteisup"elseecho"$siteisdown"fidone
当你把上面脚本内容添加到一个文件后,执行文件,查看结果:
via:
作者:MageshMaruthamuthu选题:lujun9972译者:lxbwolf校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出