我目前正在使用它xargs -n 1 -P 24 curl -s -w '%%{url_effective}\t%{time_total}\n' -o /dev/null < mirrors.txt
来测试每个镜像的响应时间。我希望能够在curl
第一个/最快的实例完成后终止所有实例。这可能不是最好的方法,所以我愿意接受其他能达到我想要的结果的解决方案。
谢谢!
答案1
找到快速镜像(以及您想要的任意数量的镜像)的最佳方法是使用netselect
.netselect
将根据其分数列出最快的镜像。假设您的文本文件由空格或换行符分隔,该命令sudo netselect -vv -s 100 $(cat mirrors.txt)
将按速度对镜像进行排序(越低越好)并以毫秒为单位显示响应时间。
以下是我自己的mirrors.txt 文件的命令输出(按随机顺序排列):
Running netselect to choose 100 out of 3 addresses.
..........................
http://deb.debian.org/debian/ 10 ms 6 hops 50% ok ( 3/ 6) [ 33]
http://mirror.timkevin.us/debian/ 70 ms 9 hops 100% ok (10/10) [ 133]
http://mirror.i3d.net/debian/ 99 ms 9 hops 100% ok (10/10) [ 188]
33 http://deb.debian.org/debian/
133 http://mirror.timkevin.us/debian/
188 http://mirror.i3d.net/debian/
Only found 3 hosts out of 100 requested.
最快的镜像得分为 33。响应时间仅 10 毫秒。毫秒和分数显示在这些行中:
http://deb.debian.org/debian/ milliseconds-->10 ms<-- 6 hops 50% ok ( 3/ 6) [ score-->33]
http://mirror.timkevin.us/debian/ milliseconds-->70 ms<-- 9 hops 100% ok (10/10) [ score-->133]
http://mirror.i3d.net/debian/ milliseconds-->99 ms<-- 9 hops 100% ok (10/10) [ score-->188]
使用的好处是它的工作速度比andnetselect
更快,而且您不需要麻烦,因为您只需将 的输出作为命令的最后一个参数即可。该命令适用于任何 URL。ping
traceroute
xargs
mirrors.txt
netselect