#!/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
当你把脚本内容添加到一个文件后,执行文件,查看结果:
1 2 3 4
# sh curl-url-check.sh
HTTP/2200 magesh.co.in isup
如果你想看多个网站的状态,使用下面的 shell 脚本:
1 2 3 4 5 6 7 8 9 10 11 12
# 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
当你把上面脚本内容添加到一个文件后,执行文件,查看结果:
1 2 3 4 5 6 7 8 9 10
# sh curl-url-check-1.sh
HTTP/1.1 200 OK 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 相对于其他工具来说更优秀,功能包括后台运行、递归下载、多文件下载、断点续传、非交互式下载和大文件下载。
#!/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
当你把脚本内容添加到一个文件后,执行文件,查看结果:
1 2 3 4
# wget-url-check.sh
HTTP/1.1200 OK Google.com is up
如果你想看多个网站的状态,使用下面的 shell 脚本:
1 2 3 4 5 6 7 8 9 10 11 12
# 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
当你把上面脚本内容添加到一个文件后,执行文件,查看结果:
1 2 3 4 5 6 7 8 9 10
# sh wget-url-check-1.sh
HTTP/1.1 200 OK www.google.com is up ---------------------------------- HTTP/1.1 301 Moved Permanently google.co.in is up ---------------------------------- www.xyzzz.com is down ----------------------------------
方法 5:使用 lynx 命令检测一个网站是否宕机
lynx 是一个在 可寻址光标字符单元终端 上使用的基于文本的高度可配的 web 浏览器,它是最古老的 web 浏览器并且现在仍在活跃开发。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# lynx -head -dump http://www.magesh.co.in
HTTP/1.1200 OK Date: Fri, 15 Nov 201908:14:23 GMT Content-Type: text/html Connection: close Set-Cookie: __cfduid=df3cb624024b81df7362f42ede71300951573805662; expires=Sat, 1 4-Nov-2008:14:22 GMT; path=/; domain=.magesh.co.in; HttpOnly Vary: Accept-Encoding Last-Modified: Sun, 14 Jun 201511:52:38 GMT X-Cache: HIT from Backend CF-Cache-Status: DYNAMIC Server: cloudflare CF-RAY: 535fc5704a43e694-LHR
#!/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
当你把脚本内容添加到一个文件后,执行文件,查看结果:
1 2 3 4
# sh lynx-url-check.sh
HTTP/1.1200 OK magesh.co.in isup
如果你想看多个网站的状态,使用下面的 shell 脚本:
1 2 3 4 5 6 7 8 9 10 11 12
# 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
当你把上面脚本内容添加到一个文件后,执行文件,查看结果:
1 2 3 4 5 6 7 8 9 10
# sh lynx-url-check-1.sh
HTTP/1.0 200 OK 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 回应响应报文来检测主机的可用性。它基于已发送的包、接收到的包和丢失了的包来统计结果数据,通常包含最小/平均/最大响应时间。
1 2 3 4 5 6 7 8 9 10 11 12
# ping -c 5 2daygeek.com
PING 2daygeek.com (104.27.157.177) 56(84) bytes of data. 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=1 ttl=58 time=228 ms 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=2 ttl=58 time=227 ms 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=3 ttl=58 time=250 ms 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=4 ttl=58 time=171 ms 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=5 ttl=58 time=193 ms
--- 2daygeek.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 13244ms rtt min/avg/max/mdev = 170.668/213.824/250.295/28.320 ms
简而言之,一个 shell 脚本 就是一个包含一系列命令的文件。shell 从文件读取内容按输入顺序逐行在命令行执行。为了让它更有效,我们添加一些条件。这也减轻了 Linux 管理员的负担。
如果你想想用 wget 命令看多个网站的状态,使用下面的 shell 脚本:
1 2 3 4 5 6 7 8 9 10 11
# 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
当你把上面脚本内容添加到一个文件后,执行文件,查看结果:
1 2 3 4 5
# sh wget-url-check-2.sh
www.google.comisup google.co.in isup www.xyzzz.comis down
#!/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
当你把上面脚本内容添加到一个文件后,执行文件,查看结果:
1 2 3 4 5
# sh curl-url-check-2.sh
www.google.comisup google.co.in isup www.xyzzz.comis down