#!/bin/sh ethernet_interface="eth0" #sestord02 ip address ethernet_ping_ipaddr="172.21.3.22" ethernet_ipaddr=$1 IFCONFIG=`which ifconfig` $IFCONFIG $ethernet_interface up $IFCONFIG | grep $ethernet_interface if [ $? -ne 0 ]; then echo "FAIL: $ethernet_interface is not up" exit 1 else echo "PASS: $ethernet_interface is up" fi if [ "x$ethernet_ipaddr" != "x" ]; then $IFCONFIG $ethernet_interface $ethernet_ipaddr fi $IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}' if [ $? -ne 0 ]; then echo "FAIL: ipaddr of $ethernet_interface setup failed" exit 1 else echo "PASS: ipaddr of $ethernet_interface setup success" fi mindatasize=56 maxdatasize=650 stepsize=100 iteration=1 datasize=$mindatasize logfile=`/bin/mktemp` statistics=`/bin/mktemp` error=0 trap cleanup SIGHUP SIGINT SIGTERM clean_tasks() { echo "Executing clean up tasks" rm -f $logfile $statistics } cleanup() { echo "Aborting script execution" clean_tasks exit 0 } echo "start ping test for $ethernet_interface..." while [ $datasize -le $maxdatasize ]; do for i in `seq 1 $iteration`; do ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics ping_err=`echo $?` echo "" && cat $statistics | grep -r "PING" cat $statistics | grep -r "received" [ `echo $?` -eq 0 ] || packets_received=0 && \ packets_received=`cat $statistics | \ grep -r "received" | awk '{print$4}'` # Evaluate possible errors on the ping operation if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then error=1 echo -e `cat $statistics | grep -r PING` >> $logfile echo -e "Size: $datasize Iteration: $i\n" >> $logfile fi done let datasize=$datasize+$stepsize done # Report failures if [ $error -eq 1 ]; then echo -e "=================== error report ===================\n" cat $logfile echo -e "====================================================\n" clean_tasks echo -e "FAIL: ping test for $ethernet_interface failed\n" exit 1 else clean_tasks echo -e "PASS: ping test for $ethernet_interface success\n" fi exit 0