最近几天一直忙着做北京某机房多线,三线和双线的网速测试。

crontab -e
*/30 * * * *  /bin/bash /root/wirespeed/test-wirespeed.sh
每半小时取一次值。

主要采用ping和wget的值来判断网速的优良。当然了traceroute也是很重要的参考项。

#!/bin/bash
#For testing the wirespeed of BJxxx
#Levin.

trap 'echo;exit 0' 2 15

test_port='1.2.3.2-->武汉电信      ###举例用的伪ip
12.2.2.22-->温州电信
5.6.3.2-->深圳电信
30.19.1.5-->宁波电信
1.1.2.5-->青岛网通
8.8.5.9-->哈尔滨网通
1.15.11.8-->北京网通
'
time=`date +%F--%T`
packets=200

mkdir -p /root/wirespeed/datas/

cd /root/wirespeed/datas/

for i in $test_port;do

                ip=`echo $i|awk -F'-->' '{print $1}'`
                name=`echo $i|awk -F'-->' '{print $2}'`
                echo "###### signlevin $time ######"    >>speed.log.$time
                echo "-----> levin-sign    $ip $name    <----- " >>speed.log.$time
                ping -w $packets    $ip >>speed.log.$time
                wget http://$ip/ceshi 2>>speed.log.$time
                echo -e "/n/n" >>speed.log.$time
done

egrep 'levin-sign' speed.log.$time |awk '{print $3" "$4}' >1

egrep 'packet' speed.log.$time |awk '{print $6}' >2

egrep 'rtt' speed.log.$time |awk -F'= ' '{print $2}'|awk -F'/' '{print $1" "$2" "$3}'>3

egrep 'saved' speed.log.$time |awk -F'(' '{print $2}'|awk -F')' '{print $1}' >4

sed 's/ //' 4 >5

paste 1 2 3 5|awk '{printf "%-16s %-16s %-16s %-16s %-16s %-16s %-16s\n",$1,$2,$3,$4,$5,$6,$7}'>result.log.$time

rm -f ceshi* 1 2 3 4 5

cat result.log.2009-12-18--10:00:01
 1.2.3.2    武汉电信         0%               18.274           25.647           56.231           700KB/s        
 12.2.2.22  温州电信         2%               38.695           54.259           102.885          663KB/s        
 5.6.3.2    深圳电信         1%               39.096           49.529           89.068           364KB/s        
 30.19.1.5 宁波电信         1%               34.076           47.669           92.153           627KB/s        
 1.1.2.5 青岛网通         0%               10.043           17.313           34.967           2.70MB/s       
 8.8.5.9    哈尔滨网通       0%               16.236           23.168           48.117           2.20MB/s       
 1.15.11.8  北京网通         0%               1.555            1.987            5.869            6.69MB/s 

最后用一条命令把产生的形如result.log.2009-12-18--10:00:01的文件内容汇总:

for i in result.log.*;do echo $i |awk -F. '{print $NF}'>>results.log;cat $i >>results.log;echo "" >>results.log;done

然后贴在excel中整理一下就可以了。