校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 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最快的鏡像站點的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 安达市| 车致| 铁岭市| 德惠市| 平乡县| 鹤庆县| 固原市| 沙坪坝区| 白沙| 扎赉特旗| 淅川县| 墨脱县| 石渠县| 涞源县| 西华县| 明溪县| 陇西县| 富宁县| 平安县| 中牟县| 化德县| 漳州市| 砚山县| 洛扎县| 中阳县| 鄂尔多斯市| 东乡| 石棉县| 祥云县| 濮阳市| 汶上县| 南开区| 饶河县| 湄潭县| 谷城县| 合阳县| 荥经县| 出国| 遂平县| 阿城市| 桃江县|