use fping instead of ping to reduce processing time

This commit is contained in:
Babak Farrokhi 2016-05-11 14:16:48 +04:30
parent c1f246bad8
commit 5ee398302f

View File

@ -42,7 +42,7 @@
SCRIPT_NAME=$(basename $0) SCRIPT_NAME=$(basename $0)
SRC=`echo $SCRIPT_NAME | sed -n s/multiping_//p` SRC=`echo $SCRIPT_NAME | sed -n s/multiping_//p`
PING=`which ping` || exit 1 FPING=`which fping` || exit 1
FSRC=`echo ${SRC} | sed 's/\./_/g'` FSRC=`echo ${SRC} | sed 's/\./_/g'`
IPS=`ifconfig ${interface} | awk '/inet /{print $2}' | grep -Ev '^(10|192)\.'` IPS=`ifconfig ${interface} | awk '/inet /{print $2}' | grep -Ev '^(10|192)\.'`
@ -55,19 +55,15 @@ if [ $# -lt 1 ]; then
TMPFILE=`mktemp -t multiping` TMPFILE=`mktemp -t multiping`
for DST in `echo ${hosts} | tr , " "`; do DST=`echo ${hosts} | tr , " "`
fname=`echo ${DST} | sed 's/\./_/g'` fname=`echo ${DST} | sed 's/\./_/g'`
ping -q -W1 -i0.1 -c10 -S ${SRC} ${DST} | sed 's/\// /g' | awk ' ${FPING} -A -q -s -i10 -c50 -p 25 -S ${SRC} -t1000 ${DST} 2>&1 | grep ':' | tr '%/,' ' ' | awk '
/^round-trip/ { /xmt/ {
print "rtt_'${fname}'.value " $7; printf "rtt_%s.value %0.0f\n", $1, $15;
} printf "loss_%s.value %0.0f\n", $1, $9;
/ packet loss/ {
loss=$7;
gsub(/\%/, "", loss);
print "loss_'${fname}'.value " loss;
} }
' >> ${TMPFILE} ' >> ${TMPFILE}
done
echo "multigraph rtt_${FSRC}" echo "multigraph rtt_${FSRC}"
grep ^rtt ${TMPFILE} grep ^rtt ${TMPFILE}