85 lines
2.0 KiB
Bash
Executable File
85 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# script to test bandwidth to ssh server
|
|
|
|
# it copies a 10MB file to the server and
|
|
# loads it back down again.
|
|
|
|
|
|
# usage: bandwidth user@server
|
|
# if no server is applied a default server is used
|
|
|
|
# defaults
|
|
sshserver=birdofprey
|
|
sshuser=david
|
|
sshpath="/tmp"
|
|
localpath="/tmp"
|
|
file=$RANDOM
|
|
size=10 #MB
|
|
|
|
# preflight
|
|
command -v scp &> /dev/null
|
|
if [[ $? -ne 0 ]]; then
|
|
echo "scp must be installed first. exiting."
|
|
exit 1
|
|
fi
|
|
command -v ssh &> /dev/null
|
|
if [[ $? -ne 0 ]]; then
|
|
echo "ssh must be installed first. exiting."
|
|
exit 1
|
|
fi
|
|
command -v python &> /dev/null
|
|
if [[ $? -ne 0 ]]; then
|
|
echo "python must be installed first. exiting."
|
|
exit 1
|
|
fi
|
|
|
|
# create file
|
|
echo "creating $size MB file."
|
|
dd if=/dev/zero of=$localpath/$file bs=$(($size*1024*1024)) count=1 &> /dev/null
|
|
|
|
if [[ $? -ne 0 ]]; then
|
|
echo "cannot create file. ($localpath/$file)"
|
|
exit 1
|
|
fi
|
|
|
|
# upload file
|
|
echo "uploading file to $sshserver"
|
|
scp -v $localpath/$file $sshuser@$sshserver:$sshpath/$file &> $localpath/bandwidth_scplogup
|
|
if [ $? -eq 0 ]; then
|
|
echo upload was successful
|
|
fi
|
|
result=$(cat $localpath/bandwidth_scplogup | grep "Bytes per second" | awk '{print $5}' | sed 's/\,//')
|
|
echo "upload (bytes/s): $result"
|
|
rm $localpath/bandwidth_scplogup
|
|
|
|
# download file
|
|
echo "downloading file from $sshserver."
|
|
scp -v $sshuser@$sshserver:$sshpath/$file $localpath/$file &> $localpath/bandwidth_scplogdown
|
|
result=$(cat $localpath/bandwidth_scplogdown | grep "Bytes per second" | awk '{print $7}' | sed 's/\,//')
|
|
echo "download (bytes/s): $result"
|
|
rm $localpath/bandwidth_scplogdown
|
|
|
|
# remove remote file
|
|
ssh $sshuser@$sshserver rm $sshpath/$file &> /dev/null
|
|
if [[ $? -ne 0 ]]; then
|
|
echo "cannot remove remote file. ($sshpath/$file) - you must fix this!!"
|
|
sleep 5
|
|
else
|
|
echo "remote file removed."
|
|
fi
|
|
|
|
# remove local file
|
|
rm $localpath/$file
|
|
if [[ $? -ne 0 ]]; then
|
|
echo "cannot delete local file. exiting. ($localpath/$file) - you must fix this!!"
|
|
exit 1
|
|
else
|
|
echo "local file has been deleted."
|
|
exit 0
|
|
fi
|
|
|
|
|
|
echo "all done. exiting."
|
|
exit 0
|