shell脚本测试多服务器网络速度

经常需要对多台服务器进行测试,以便选择对我们最优的服务器使用,需测的服务器不多时,手工跑跑就行了,但到几十上百台的时候,就需要写个脚本了。

服务器测试的url为:http://server/speedtesting.zip,speedtesting.zip文件需要上传到服务器上。

/root/shell/vpn.txt文件内存放服务器的域名,一行一个。

测试结果存放在:/root/shell/result.txt

脚本如下:

#!/bin/sh

vpnlist="/root/shell/vpn.txt"
testfile="/speedtesting.zip"
result="/root/shell/result.txt"

echo "" > $result

cat $vpnlist | while read vpnserver
do
        url="http://$vpnserver$testfile"
        wget -o /tmp/vpn.log $url -O /dev/null

        speed=`cat /tmp/vpn.log | grep ‘saved’ | awk -F ‘{print $3}’ | cut -c2-`
        unit=`cat /tmp/vpn.log | grep ‘saved’ | awk -F ‘{print $4}’ | cut -c-2`

        if [ "$unit" == "MB" ]; then
                speed=`echo $speed*1024 | bc`
                unit="KB"
        fi

        echo "$url      $speed $unit/s" >> $result
        echo "$url      $speed $unit/s"

done

echo "VPN speed test finish,sort result display:"

cat $result | sort -k2 -rn