xcat-core/xCAT-client/sbin/pping2
linggao 399303e237 added ppping
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2373 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2008-10-21 18:23:18 +00:00

71 lines
1.0 KiB
Bash
Executable File

#!/bin/ksh
#egan@us.ibm.com
#(C)IBM Corp
#
SERIAL=""
ETH=""
Q=0
while [ -n "$1" ]
do
case "$1" in
-q)
Q=1
shift
;;
-s)
SERIAL="on"
shift
;;
-i)
shift
ETH=$1
shift
;;
*)
LEFT="$LEFT $1"
shift
;;
esac
done
if [ -n "$LEFT" ]
then
set $LEFT
fi
nodes=`echo $1 |sed "s/,/ /g"`
if [ -n "$ETH" ]; then
nodes=`echo $nodes |sed "s/ /-$ETH /g"`
nodes="$nodes-$ETH"
fi
which fping >/dev/null 2>&1
if [ "$?" = "0" ]; then
if [ "$Q" = "1" ]; then
fping $nodes 2>&1 | grep -v 'is alive' | sed "s/ is unreachable/: noping/"
else
fping $nodes 2>&1 | sed "s/ is alive/: ping/" | sed "s/ is unreachable/: noping/"
fi
else
JOBS=""
for i in $nodes
do
(if ping -c1 $i >/dev/null 2>&1
then
if [ "$Q" = "0" ]; then
echo "$i: ping"
fi
else
echo "$i: noping"
fi) &
if [ -z "$SERIAL" ]; then
JOBS="$JOBS $!"
else
wait $!
fi
done
wait
fi
exit 0