Home Command line utilities An Easy Way To Monitor A Website From Command Line In Linux

An Easy Way To Monitor A Website From Command Line In Linux

By sk
Published: Last Updated on 9.2K views

This brief tutorial explains a simplest method to monitor a website from command line in Unix-like systems. We all know that ping command will quickly tell you whether a host or website is up or down. Usually, most of us check whether a website is up or down like below using command:

$ ping ostechnix.com -c 3

Sample output:

PING ostechnix.com (64.90.37.180) 56(84) bytes of data.
64 bytes from ostechnix.com (64.90.37.180): icmp_seq=1 ttl=51 time=376 ms
64 bytes from ostechnix.com (64.90.37.180): icmp_seq=2 ttl=51 time=374 ms

--- ostechnix.com ping statistics ---
3 packets transmitted, 2 received, 33% packet loss, time 2000ms
rtt min/avg/max/mdev = 374.828/375.471/376.114/0.643 ms

Ping command

But, Would you run this command every time to check whether your website is up or down? Of course, you might create a script to check your website status at periodic intervals. However, it is not necessary! Here is simple one-liner command that will watch or monitor on a regular interval:

$ watch -n 1 curl -I http://DOMAIN_NAME/

For those who don't know, watch command is used to run any command in a particular intervals.

Monitor A Website From Command Line In Linux

Let us check if ostechnix.com site is live or down. To do so, run:

$ watch -n 1 curl -I https://ostechnix.com/

Sample output:

Every 1.0s: curl -I https://ostechnix.com/ sk: Thu Dec 22 17:37:24 2016

% Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
HTTP/1.1 200 OK 
Date: Thu, 22 Dec 2016 12:07:09 GMT
Server: ApacheD
Vary: Cookieh
Link: <https://ostechnix.com/wp-json/>; rel="https://api.w.org/", <https://w
p.me/5ILHv>; rel=shortlinki
Content-Type: text/html; charset=UTF-8

Monitor A Website From Command Line

The above command will monitor our site ostechnix.com at every one second interval. You can change the monitoring time as you wish. Unlike the ping command, it will keep watching your web site status until you manually stop it. To stop this command, press CTRL+C.

If you got HTTP/1.1 200 OK in the output, great! It means your website is working and live.

What about google?

$ watch -n 1 curl -I https://www.google.co.in/

Monitor Google site with Watch command

Great! Google is working!

Facebook? Just run:

$ watch -n 1 curl -I https://www.facebook.com/

Monitor Facebook with Watch command

Well, Facebook is up and running too!

If you have a local web server running , you can cross check it by stopping your web server manually running the following commands,

If your website is running with nginx, run:

$ sudo systemctl stop nginx

If your website is using Apache, then you can stop as shown below.

$ sudo systemctl stop httpd

Now, go and check the command's output. You will see connection refused error. Quite handy, isn't it?

This is a really cool one-liner command that you can use to monitor sites from Terminal. Also, It is quite useful when moving DNS or any other types of site migrations. It really comes in handy during high traffic events where the site going down is a strong possibility.

I know I know, this method is not recommended for monitoring production and mission critical sites. There are so many free or paid tools, software, and apps are available to watch and monitor such kind of sites. Those tools will immediately send alerts when your site is down. However, the above one-liner command is a quickest way to check the status of your local or public website within seconds.

Thanks for stopping by!

Help us to help you:

Have a Good day!!

You May Also Like

3 comments

Dan Stromberg December 24, 2016 - 12:24 am

I wrote something along these lines years ago. It can be found here: http://stromberg.dnsalias.org/~strombrg/notify-when-up2.html .

It (by default) e-mails you and gives you an X11 popup when a state changes; it can also page you if you have an email->pager gateway.

For a website content change, you can:
notify-when-up2 –delta ‘curl –silent http://www.google.com | md5sum -‘
That’ll make it memorize the md5 hash of http://www.google.com on the first iteration, and check against that same md5 hash on each subsequent run until there’s a change.

That way you don’t have to keep checking on a watch; you can just leave it running somewhere and mostly forget about it.

HTH

Reply
SK December 24, 2016 - 8:17 am

That’s cool. I will check soon.

Reply
Tim Kissane September 28, 2020 - 11:44 pm

“Unlike the ping command, it will keep watching your web site status until you manually stop it. ”
The ping command will also continue monitoring unless you stop it with Ctrl-c. That is its default behavior. You have added the “-c 3” parameter which causes it to run only 3 times. Of course, on Windows the default is different, running 4 times then stopping. You can change the count with “/n number-of-runs” or make it run continually with “/t” until stopped with Ctrl-c.

Reply

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More