Shell Script to Check Availability of Server using ping

Connect with

This shell script is useful to check whether connectivity between servers is ok or not, which actually help a lot specially 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.


Connect with

Leave a Reply

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