Kping
Jump to navigation
Jump to search
simple
#!/bin/bash
# kping - simple history ping
# programmed by Kenneth Burgener <kenneth@oeey.com> (SEP 2011)
if [ "$1" = "" ] ; then
echo "Usage: hping [host]"
exit 1
fi
while true ; do
ping -c 1 -W 1 $1 > /dev/null
if [ $? -eq 0 ] ; then
echo -n "."
sleep 1
else
echo -n "-"
sleep .05 # ugly to allow ctrl-c
fi
done
echo ""
line wrap
with new lines at 60 seconds
#!/bin/bash
# kping - simple history ping
# programmed by Kenneth Burgener <kenneth@oeey.com> (SEP 2011)
if [ "$1" = "" ] ; then
echo "Usage: hping [host]"
exit 1
fi
count=0
while true ; do
ping -c 1 -W 1 $1 > /dev/null
if [ $? -eq 0 ] ; then
echo -n "."
sleep 1
else
echo -n "-"
sleep .05
fi
count=$(( count + 1 ))
if [ $count -eq 60 ] ; then
echo
count=0
fi
done
echo ""
audio bell and minute count
#!/bin/bash
# kping - visual ping history
# Programmed by Kenneth Burgener <kenneth@oeey.com> (SEP 2011)
#
# Change Log:
# Sep 2012 - Initial version
# Oct 2011 - minute wrap
# Jul 2012 - added options, audio bell, minute count, restart flag
UPBELL=false # audio bell on ping recovery
DOWNBELL=false # audio bell on ping loss
RESTART=false # restart minute count on state change
while getopts "aAr" Option
do
case $Option in
a )
DOWNBELL=true ;;
A )
UPBELL=true ;;
r )
RESTART=true ;;
* )
echo "Error: Invalid option!"
exit 1
;;
esac
done
shift $(($OPTIND - 1))
if [ $# -ne 1 ] ; then
echo "Usage: $0 [-a:DOWNBELL] [-A:UPBELL] [-r:RESTART] <SERVER>"
echo " UPBELL - audio bell on ping recovery"
echo " DOWNBELL - audio bell on ping loss"
echo " RESTART - restart minute count on state change"
exit 1
fi
# minute and seconds count
MAXCOUNT=60
count=0
minutes=0
# restart condition
NEWSTATE=1
OLDSTATE=1
DORESTART=false
printf "%03d " $minutes
while true ; do
# check ping state
ping -c 1 -W 1 $1 > /dev/null
if [ $? -eq 0 ] ; then
NEWSTATE=1
echo -n "."
if $UPBELL ; then
echo -en "\a"
fi
sleep 1
else
NEWSTATE=0
echo -n "-"
if $DOWNBELL ; then
echo -en "\a"
fi
sleep .05
fi
# minute restart condition
if [ $RESTART == true -a $NEWSTATE -ne $OLDSTATE ] ; then
DORESTART=true
fi
OLDSTATE=$NEWSTATE
# minute and second count
count=$(( count + 1 ))
if [ $count -eq $MAXCOUNT -o $DORESTART == true ] ; then
echo
minutes=$(( minutes + 1 ))
printf "%03d " $minutes
count=0
DORESTART=false
fi
done
echo ""