AG广东会,山东十一选五,大发

?
  • AG广东会400电话
  • 微网小程序
  • AI电话山东十一选五
  • 电商代运营
  • AG广东会,山东十一选五,大发:全 部 栏 目

    AG广东会400电话 网络优化推广 AI电话山东十一选五 呼叫中心 网站建设 商标?知产 微网小程序 电商运营 彩铃?短信 增值拓展业务
    Shell脚本实现检测Cygwin最快的镜像站点

    这是一个 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:

    您可能感兴趣的文章:
    • 自动化下载并检测ftp文件备份的shell脚本
    • 用来检测输入的选项$1是否在PATH中的shell脚本
    • shell脚本实现实时检测文件变更
    • VBS脚本写的Windows硬件检测工具分享
    • Linux Shell脚本实现检测tomcat
    • Shell脚本实现检测进程是否正在运行
    • PowerShell脚本实现检测网络内主机类型
    • 脚本批量检测网站是否存活
    上一篇:Shell脚本中实现更新PHP5
    下一篇:linux下使用ssh远程执行命令批量导出数据库到本地
  • 相关文章
  • ?

    ? 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Shell脚本实现检测Cygwin最快的镜像站点 Shell,脚本,实现,检测,Cygwin,

    AG广东会官网入口(中国)官方网站-IOS/Android通用版(2026已更新)