这是一个 shell 脚本,所以首先你需要安装一个基本的 Cygwin 环境,当然还有 curl。
原理很简单,先从 cygwin.com 下载最新的 mirrors.lst 镜像列表,简单处理一下后,利用 curl 以此检测每个站点的连接速度,并将结果记录下来,最后再排个序,显示出最快的几个站点。
在使用的过程中,我发现检测到的最快的 mirror,实际上使用速度并不一定是最快的,这可能和服务器有关系,毕竟 curl 检测的时间只是读取 mirror 首页的时间。不过每个 mirror 一般都有两组服务器——http & ftp,如果其中一个速度不怎么样,那么可以选择另外一个试试看。
复制代码 代码如下:
#!/bin/sh
# cygwin-mirrors.sh
# 该脚本用于查找 Cygwin 的最快镜像
timeout=5 # 超时时间
mirrors_count=5 # 显示最快的几个镜像
PROG=`basename $0` # 程序名称
## 显示 usage
_usage() {
echo "Usage: ${PROG} [-t <timeout>] [-p <mirrors_count>] [-h]"
exit
}
## 检查参数并赋值
_assign() {
if [ "$1" == "timeout" -o "$1" == "mirrors_count" ]; then
if [[ "$2" =~ ^[[:digit:]]+$ ]]; then
let $1=$2
else
echo "$1 should be a number"
exit 1
fi
fi
}
## 处理参数
while getopts ":t:p:h-:" optval
do
case "$optval" in
t) _assign timeout ${OPTARG} ;;
p) _assign mirrors_count ${OPTARG} ;;
h) _usage ;;
"-") echo "Unknown option: '--${OPTARG}'" >&2; _usage ;;
":") echo "Option '-${OPTARG}' requires an argument" >&2; _usage ;;
"") echo "Unknown option: '-${OPTARG}'" >&2; _usage ;;
## Should not occur
*) echo "Unknown error while processing options" >&2; _usage ;;
esac
done
shift $(expr ${OPTIND} - 1)
## 检查用户是否安装了 curl
CURL=`which curl 2> /dev/null`
[ -z "$CURL" ] && (echo "Need to install the curl package."; exit 1)
## 读取镜像站点
mirrors=`curl --silent http://cygwin.com/mirrors.lst | cut -d';' -f1`
## 使用 CURL 依次检测时间
results=''
for mirror in $mirrors; do
echo -n "Checking ${mirror} ... "
time=`curl -m $timeout -s -o /dev/null -w %{time_total} $mirror`
if [ "$time" = "0.000" ]; then
echo -e "\e[31mfail\e[0m"
else
echo -e "\e[32m$time\e[0m"
results="${results}\e[32m${time}\e[0m - ${mirror}\n"
fi
done
echo -e "\n检测结果:"
echo -e $results | sort -n | sed '1d' | head -$mirrors_count
# vim: set expandtab tabstop=4 shiftwidth=4:
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]