婷婷综合国产,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最快的鏡像站點的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 竹北市| 宣威市| 龙州县| 德清县| 临武县| 常州市| 鸡西市| 鹤山市| 普定县| 扶风县| 柘城县| 田东县| 乌什县| 九江市| 张家川| 云和县| 尚义县| 交城县| 玛多县| 连州市| 昌邑市| 吴桥县| 深圳市| 丽江市| 平和县| 紫云| 荆州市| 资阳市| 宁津县| 宣恩县| 江都市| 新密市| 汉源县| 无锡市| 福清市| 潼关县| 府谷县| 安岳县| 浮梁县| 邵武市| 宜昌市|