跟我一起学shell-第六篇 如何快速找出最快线路

作者: | 2017年11月29日

我的理解:
1.先定义4个节点
2.使用ping节点,获取响应时间
3.依次保存到ping.pl结果中
4.再对ping.pl结果排序,取最时间最短的节点地址,如果不存在,默认就使用HK2节点
5.根据结果拼接 download地址
6.删除ping.pl结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#自动选择下载节点
CN='125.88.182.172'
HK='download.bt.cn'
HK2='103.224.251.67'
US='128.1.164.196'
CN_PING=`ping -c 1 -w 1 $CN|grep time=|awk '{print $7}'|sed "s/time=//"`
HK_PING=`ping -c 1 -w 1 $HK|grep time=|awk '{print $7}'|sed "s/time=//"`
HK2_PING=`ping -c 1 -w 1 $HK2|grep time=|awk '{print $7}'|sed "s/time=//"`
US_PING=`ping -c 1 -w 1 $US|grep time=|awk '{print $7}'|sed "s/time=//"`
echo "$HK_PING $HK" > ping.pl
echo "$HK2_PING $HK2" >> ping.pl
echo "$US_PING $US" >> ping.pl
echo "$CN_PING $CN" >> ping.pl
nodeAddr=`sort -V ping.pl|sed -n '1p'|awk '{print $2}'`
if [ "$nodeAddr" == "" ];then
	nodeAddr=$HK2
fi
download_Url=http://$nodeAddr:5880
rm -f ping.pl

----------------------------------------------
知识点:
1.awk
2.sed
3.sort