婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Shell腳本實現檢測Cygwin最快的鏡像站點

Shell腳本實現檢測Cygwin最快的鏡像站點

熱門標簽:寧波智能外呼系統公司 安裝外呼系統費用 地圖標注輻射圖案 曲阜400電話辦理 申請公司400電話要注意什么 衛星地圖標注地名 聯通電話機器人怎么接 奧維互動地圖標注參數 電銷機器人 劍魚

這是一個 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腳本實現檢測Cygwin最快的鏡像站點》,本文關鍵詞  Shell,腳本,實現,檢測,Cygwin,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell腳本實現檢測Cygwin最快的鏡像站點》相關的同類信息!
  • 本頁收集關于Shell腳本實現檢測Cygwin最快的鏡像站點的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 宜昌市| 内丘县| 蕉岭县| 常山县| 宣化县| 拉孜县| 清河县| 东乡族自治县| 宜川县| 建阳市| 苗栗县| 贵阳市| 迁安市| 田林县| 西林县| 禹州市| 绍兴县| 兴文县| 萨迦县| 湘乡市| 凌源市| 虞城县| 巩义市| 临城县| 彰武县| 蕉岭县| 泾川县| 石柱| 平潭县| 东宁县| 济阳县| 两当县| 吉首市| 潞城市| 屏山县| 肥城市| 自治县| 宣汉县| 桃园市| 沐川县| 曲靖市|