#!/bin/sh
#this creates a ramdrive on the source, creates a X MB file on it,
#and tests how fast that file can be sent to /dev/null on the destination
size="${1}"
host="${2}" #for ssh connection
ncport="${3}"
if [ "${3}" == "" ]; then
echo "bw_test.sh 100M 10.0.0.250 9999"
echo "bw_test.sh size dest port"
exit
fi
mkdir /mnt/bwtest
umount /mnt/bwtest #just in case
mount -t ramfs none /mnt/bwtest
dd if=/dev/zero of=/mnt/bwtest/zerofile.dd bs="${size}" count=1 && echo "Made ${size} file on /mnt/bwtest" && ls -alh /mnt/bwtest
ssh -f "${host}" "killall nc ; nc -w 3 -lnvvp "${ncport}" > /dev/null" &
echo "Sleeping 5 seconds while ssh connects"
sleep 5
time nc -w 1 -nvv "${host}" "${ncport}" < /mnt/bwtest/zerofile.dd
umount /mnt/bwtest
echo "Subtract 3 seconds to account for the timeout on the destination (-w 3) (i think... we have -w 1 on the sending side too..)"
echo "need some math to compare to 100Mbit and 1000Mbit connections"