Shell Script to Check Availability of Server using ping

Connect with

Shell Script to Check Availability of Server using pingShell Script to Check Availability of Server using ping command. To check connectivity between servers is ok or not, which actually helps a lot especially if you wanted to know the stability of network connectivity.

[root@ranjeet]# vi /opt/script/pingutility.sh
#!/bin/bash

# Simple SHELL script for Linux and UNIX system monitoring with
# ping command
# -------------------------------------------------------------------------

# add ip / host name separated by white space , so that iterate further while ping
HOSTS="10.72.179.204 10.72.179.205 search.mysoftkey.com"

# number of ping requests
COUNT=1
LOG_FILE=/opt/ping-log.txt


while [ true ]
do
for myHost in $HOSTS
do

  grepPing=$(ping -c $COUNT $myHost | grep 'time=' )

  if [ "$myHost" == "search.mysoftkey.com" ];
  then
    timeUnit=$(echo $grepPing | awk '{ print $9 }' )
    timetaken=$(echo $grepPing | awk '{ print $8 }' | awk -F'=' '{ print $2 }' | awk -F'.' '{ print $1 }' | awk '{printf( "%d", $1 )}')
  else
    timeUnit=$(echo $grepPing | awk '{ print $8 }' )
    timetaken=$(echo $grepPing | awk '{ print $7 }' | awk -F'=' '{ print $2 }' | awk -F'.' '{ print $1 }' | awk '{printf( "%d", $1 )}')
  fi


  if [ "$timeUnit" != "" ];
  then
    if [ $timeUnit == "ms" -a $timetaken -lt 1 ];
    then
      echo "$grepPing, $myHost is online" `date`
    else
      echo "$grepPing, Host : $myHost is down (ping failed) at $(date)" >> $LOG_FILE
#      echo "$grepPing, Host : $myHost is down (ping failed) at $(date)"
    fi
  else
    echo "ping: unknown host $myHost, at $(date)" >> $LOG_FILE
  fi
done
sleep 1
done

Run it in background Thread

Run the above script in background and leave it , when you come next day to office you can check /opt/ping-log.txt file what logged into or what not. Which can help you to identify somewhere.

sh  /opt/script/pingutility.sh &

Output

You should see the output of above script

[root@ranjeet tmp]# tail -f /opt/ping-log.txt
64 bytes from 10.72.179.209: icmp_seq=1 ttl=127 time=1.06 ms, Host : 10.72.179.209 is down (ping failed) at Thu Aug 25 16:33:35 IST 2016
64 bytes from 10.72.179.209: icmp_seq=1 ttl=127 time=5.88 ms, Host : 10.72.179.209 is down (ping failed) at Thu Aug 25 16:33:44 IST 2016
64 bytes from 10.72.179.209: icmp_seq=1 ttl=127 time=7.09 ms, Host : 10.72.179.209 is down (ping failed) at Thu Aug 25 16:33:47 IST 2016
64 bytes from 10.72.179.209: icmp_seq=1 ttl=127 time=13.3 ms, Host : 10.72.179.209 is down (ping failed) at Thu Aug 25 16:33:52 IST 2016

Write your suggestion / comments to improve this post about how to check servers connectivity usng Linux shell script.


Connect with

Leave a Comment

Your email address will not be published. Required fields are marked *