mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
458 lines
14 KiB
Markdown
458 lines
14 KiB
Markdown
|
[#]: collector: (lujun9972)
|
|||
|
[#]: translator: ( )
|
|||
|
[#]: reviewer: ( )
|
|||
|
[#]: publisher: ( )
|
|||
|
[#]: url: ( )
|
|||
|
[#]: subject: (6 Methods to Quickly Check if a Website is up or down from the Linux Terminal)
|
|||
|
[#]: via: (https://www.2daygeek.com/linux-command-check-website-is-up-down-alive/)
|
|||
|
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
|
|||
|
|
|||
|
6 Methods to Quickly Check if a Website is up or down from the Linux Terminal
|
|||
|
======
|
|||
|
|
|||
|
This tutorial shows you how to quickly check whether a given website is up (alive) or down from a Linux terminal.
|
|||
|
|
|||
|
You may already know some of these commands to verify about this, namely ping, curl, and wget.
|
|||
|
|
|||
|
But we have added some other commands as well in this tutorial.
|
|||
|
|
|||
|
Also, we have added various options to check this information for single host and multiple hosts.
|
|||
|
|
|||
|
This article will help you to check whether the website is up or down.
|
|||
|
|
|||
|
But if you maintain some websites and want to get real-time alerts when the website is down.
|
|||
|
|
|||
|
I recommend you to use real-time website monitoring tools. There are many tools for this, and some are free and most of them are paid.
|
|||
|
|
|||
|
So choose the preferred one based on your needs. We will cover this topic in our upcoming article.
|
|||
|
|
|||
|
### Method-1: How to Check if a Website is up or down Using the fping Command
|
|||
|
|
|||
|
**[fping command][1]** is a program such as ping, which uses the Internet Control Message Protocol (ICMP) echo request to determine whether a target host is responding.
|
|||
|
|
|||
|
fping differs from ping because it allows users to ping any number of host in parallel. Also, hosts can be entered from a text file.
|
|||
|
|
|||
|
fping sends an ICMP echo request, moves the next target in a round-robin fashion, and does not wait until the target host responds.
|
|||
|
|
|||
|
If a target host replies, it is noted as active and removed from the list of targets to check; if a target does not respond within a certain time limit and/or retry limit it is designated as unreachable.
|
|||
|
|
|||
|
```
|
|||
|
# fping 2daygeek.com linuxtechnews.com magesh.co.in
|
|||
|
|
|||
|
2daygeek.com is alive
|
|||
|
linuxtechnews.com is alive
|
|||
|
magesh.co.in is alive
|
|||
|
```
|
|||
|
|
|||
|
### Method-2: How to Quickly Check Whether a Website is up or down Using the http Command
|
|||
|
|
|||
|
HTTPie (pronounced aitch-tee-tee-pie) is a command line HTTP client.
|
|||
|
|
|||
|
The **[httpie tool][2]** is a modern command line http client which makes CLI interaction with web services.
|
|||
|
|
|||
|
It provides a simple http command that allows for sending arbitrary HTTP requests using a simple and natural syntax, and displays colorized output.
|
|||
|
|
|||
|
HTTPie can be used for testing, debugging, and generally interacting with HTTP servers.
|
|||
|
|
|||
|
```
|
|||
|
# http 2daygeek.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:28 GMT
|
|||
|
Expires: Thu, 14 Nov 2019 20:30:28 GMT
|
|||
|
Location: https://2daygeek.com/
|
|||
|
Server: cloudflare
|
|||
|
Transfer-Encoding: chunked
|
|||
|
Vary: Accept-Encoding
|
|||
|
```
|
|||
|
|
|||
|
### Method-3: How to Check if a Website is up or down Using the curl Command
|
|||
|
|
|||
|
**[curl command][3]** is a tool to transfer data from a server or to server, using one of the supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP).
|
|||
|
|
|||
|
The command is designed to work without user interaction.
|
|||
|
|
|||
|
Also curl support proxy support, user authentication, FTP upload, HTTP post, SSL connections, cookies, file transfer resume, Metalink, and more.
|
|||
|
|
|||
|
curl is powered by libcurl for all transfer-related features.
|
|||
|
|
|||
|
```
|
|||
|
# curl -I https://www.magesh.co.in
|
|||
|
|
|||
|
HTTP/2 200
|
|||
|
date: Thu, 14 Nov 2019 19:39:47 GMT
|
|||
|
content-type: text/html
|
|||
|
set-cookie: __cfduid=db16c3aee6a75c46a504c15131ead3e7f1573760386; expires=Fri, 13-Nov-20 19:39:46 GMT; path=/; domain=.magesh.co.in; HttpOnly
|
|||
|
vary: Accept-Encoding
|
|||
|
last-modified: Sun, 14 Jun 2015 11:52:38 GMT
|
|||
|
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
|
|||
|
```
|
|||
|
|
|||
|
Use the following curl command if you want to see only the HTTP status code instead of entire output.
|
|||
|
|
|||
|
```
|
|||
|
# curl -I "www.magesh.co.in" 2>&1 | awk '/HTTP\// {print $2}'
|
|||
|
200
|
|||
|
```
|
|||
|
|
|||
|
If you want to see if a given website is up or down, use the following Bash script.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
```
|
|||
|
|
|||
|
Once you have added the above script to a file, run the file to see the output.
|
|||
|
|
|||
|
```
|
|||
|
# sh curl-url-check.sh
|
|||
|
|
|||
|
HTTP/2 200
|
|||
|
magesh.co.in is up
|
|||
|
```
|
|||
|
|
|||
|
Use the following shell script if you want to see the status of multiple websites.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
```
|
|||
|
|
|||
|
Once you have added the above script to a file, run the file to see the output.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
----------------------------------
|
|||
|
```
|
|||
|
|
|||
|
### Method-4: How to Quickly Check Whether a Website is up or down Using the wget Command
|
|||
|
|
|||
|
**[wget command][4]** (formerly known as Geturl) is a Free, open source, command line download tool which is retrieving files using HTTP, HTTPS and FTP, the most widely-used Internet protocols.
|
|||
|
|
|||
|
It is a non-interactive command line tool and Its name is derived from World Wide Web and get.
|
|||
|
|
|||
|
wget handle download pretty much good compared with other tools, futures included working in background, recursive download, multiple file downloads, resume downloads, non-interactive downloads & large file downloads.
|
|||
|
|
|||
|
```
|
|||
|
# 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 200 OK
|
|||
|
Date: Thu, 14 Nov 2019 19:52:01 GMT
|
|||
|
Content-Type: text/html
|
|||
|
Connection: keep-alive
|
|||
|
Set-Cookie: __cfduid=db73306a2f1c72c1318ad4709ef49a3a01573761121; expires=Fri, 13-Nov-20 19:52:01 GMT; path=/; domain=.magesh.co.in; HttpOnly
|
|||
|
Vary: Accept-Encoding
|
|||
|
Last-Modified: Sun, 14 Jun 2015 11:52:38 GMT
|
|||
|
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.
|
|||
|
```
|
|||
|
|
|||
|
Use the following wget command if you want to see only the HTTP status code instead of entire output.
|
|||
|
|
|||
|
```
|
|||
|
# wget --spider -S "www.magesh.co.in" 2>&1 | awk '/HTTP\// {print $2}'
|
|||
|
200
|
|||
|
```
|
|||
|
|
|||
|
If you want to see if a given website is up or down, use the following Bash script.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
```
|
|||
|
|
|||
|
Once you have added the above script to a file, run the file to see the output.
|
|||
|
|
|||
|
```
|
|||
|
# wget-url-check.sh
|
|||
|
|
|||
|
HTTP/1.1 200 OK
|
|||
|
Google.com is up
|
|||
|
```
|
|||
|
|
|||
|
Use the following shell script if you want to see the status of multiple websites.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
```
|
|||
|
|
|||
|
Once you have added the above script to a file, run the file to see the output.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
----------------------------------
|
|||
|
```
|
|||
|
|
|||
|
### Method-5: How to Quickly Check Whether a Website is up or down Using the lynx Command
|
|||
|
|
|||
|
**[lynx][5]** is a highly configurable text-based web browser for use on cursor-addressable character cell terminals. It’s the oldest web browser and it’s still in active development.
|
|||
|
|
|||
|
```
|
|||
|
# lynx -head -dump http://www.magesh.co.in
|
|||
|
|
|||
|
HTTP/1.1 200 OK
|
|||
|
Date: Fri, 15 Nov 2019 08:14:23 GMT
|
|||
|
Content-Type: text/html
|
|||
|
Connection: close
|
|||
|
Set-Cookie: __cfduid=df3cb624024b81df7362f42ede71300951573805662; expires=Sat, 1
|
|||
|
4-Nov-20 08:14:22 GMT; path=/; domain=.magesh.co.in; HttpOnly
|
|||
|
Vary: Accept-Encoding
|
|||
|
Last-Modified: Sun, 14 Jun 2015 11:52:38 GMT
|
|||
|
X-Cache: HIT from Backend
|
|||
|
CF-Cache-Status: DYNAMIC
|
|||
|
Server: cloudflare
|
|||
|
CF-RAY: 535fc5704a43e694-LHR
|
|||
|
```
|
|||
|
|
|||
|
Use the following lynx command if you want to see only the HTTP status code instead of entire output.
|
|||
|
|
|||
|
```
|
|||
|
# lynx -head -dump https://www.magesh.co.in 2>&1 | awk '/HTTP\// {print $2}'
|
|||
|
200
|
|||
|
```
|
|||
|
|
|||
|
If you want to see if a given website is up or down, use the following Bash script.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
```
|
|||
|
|
|||
|
Once you have added the above script to a file, run the file to see the output.
|
|||
|
|
|||
|
```
|
|||
|
# sh lynx-url-check.sh
|
|||
|
|
|||
|
HTTP/1.1 200 OK
|
|||
|
magesh.co.in is up
|
|||
|
```
|
|||
|
|
|||
|
Use the following shell script if you want to see the status of multiple websites.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
```
|
|||
|
|
|||
|
Once you have added the above script to a file, run the file to see the output.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
----------------------------------
|
|||
|
```
|
|||
|
|
|||
|
### Method-6: How to Check if a Website is up or down Using the ping Command
|
|||
|
|
|||
|
**[ping command][1]** stands for (Packet Internet Groper) command is a networking utility that used to test the target of a host availability/connectivity on an Internet Protocol (IP) network.
|
|||
|
|
|||
|
It’s verify a host availability by sending Internet Control Message Protocol (ICMP) Echo Request packets to the target host and waiting for an ICMP Echo Reply.
|
|||
|
|
|||
|
It summarize statistical results based on the packets transmitted, packets received, packet loss, typically including the min/avg/max times.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
```
|
|||
|
|
|||
|
### Method-7: How to Quickly Check Whether a Website is up or down Using the telnet Command
|
|||
|
|
|||
|
The Telnet command is an old network protocol used to communicate with another host over a TCP/IP network using the TELNET protocol.
|
|||
|
|
|||
|
It uses port 23 to connect to other devices, such as computer and network equipment.
|
|||
|
|
|||
|
Telnet is not a secure protocol and is now not recommended to use because the data sent to the protocol is not encrypted and can be intercepted by hackers.
|
|||
|
|
|||
|
Everyone uses SSH protocol instead of telnet, which is encrypted and very secure.
|
|||
|
|
|||
|
```
|
|||
|
# telnet google.com 80
|
|||
|
|
|||
|
Trying 216.58.194.46…
|
|||
|
Connected to google.com.
|
|||
|
Escape character is '^]'.
|
|||
|
^]
|
|||
|
telnet> quit
|
|||
|
Connection closed.
|
|||
|
```
|
|||
|
|
|||
|
### Method-8: How to Check if a Website is up or down Using the Bash Script
|
|||
|
|
|||
|
In simple words, a **[shell script][6]** is a file that contains a series of commands. The shell reads this file and executes the commands one by one as they are entered directly on the command line.
|
|||
|
|
|||
|
To make this more useful we can add some conditions. This reduces the Linux admin task.
|
|||
|
|
|||
|
If you want to see the status of multiple websites using the wget command, use the following shell script.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
```
|
|||
|
|
|||
|
Once you have added the above script to a file, run the file to see the output.
|
|||
|
|
|||
|
```
|
|||
|
# sh wget-url-check-2.sh
|
|||
|
|
|||
|
www.google.com is up
|
|||
|
google.co.in is up
|
|||
|
www.xyzzz.com is down
|
|||
|
```
|
|||
|
|
|||
|
If you want to see the status of multiple websites using the curl command, use the following **[bash script][7]**.
|
|||
|
|
|||
|
```
|
|||
|
# 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
|
|||
|
```
|
|||
|
|
|||
|
Once you have added the above script to a file, run the file to see the output.
|
|||
|
|
|||
|
```
|
|||
|
# sh curl-url-check-2.sh
|
|||
|
|
|||
|
www.google.com is up
|
|||
|
google.co.in is up
|
|||
|
www.xyzzz.com is down
|
|||
|
```
|
|||
|
|
|||
|
--------------------------------------------------------------------------------
|
|||
|
|
|||
|
via: https://www.2daygeek.com/linux-command-check-website-is-up-down-alive/
|
|||
|
|
|||
|
作者:[Magesh Maruthamuthu][a]
|
|||
|
选题:[lujun9972][b]
|
|||
|
译者:[译者ID](https://github.com/译者ID)
|
|||
|
校对:[校对者ID](https://github.com/校对者ID)
|
|||
|
|
|||
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
|||
|
|
|||
|
[a]: https://www.2daygeek.com/author/magesh/
|
|||
|
[b]: https://github.com/lujun9972
|
|||
|
[1]: https://www.2daygeek.com/how-to-use-ping-fping-gping-in-linux/
|
|||
|
[2]: https://www.2daygeek.com/httpie-curl-wget-alternative-http-client-linux/
|
|||
|
[3]: https://www.2daygeek.com/curl-linux-command-line-download-manager/
|
|||
|
[4]: https://www.2daygeek.com/wget-linux-command-line-download-utility-tool/
|
|||
|
[5]: https://www.2daygeek.com/best-text-mode-based-command-line-web-browser-for-linux/
|
|||
|
[6]: https://www.2daygeek.com/category/shell-script/
|
|||
|
[7]: https://www.2daygeek.com/category/bash-script/
|