pingの待ち時間が低いサーバーを見つける(私のスクリプトですが、誰でもPerlで書くことができますか?)

pingの待ち時間が低いサーバーを見つける(私のスクリプトですが、誰でもPerlで書くことができますか?)

OpenBSDをFTP経由でスクリプトとしてダウンロードしたいのですが、近くのサーバーからダウンロードしたいと思います。だから私は「ping待ち時間」の低いミラーを選択したいと思います。私は非常にうまく動作する小さなスクリプトを書いています(bash / Linuxでのみテストされています)。

LATESTRELVER=`curl -s 'www.openbsd.org' | fgrep 'The current release is ' | sed 's/OpenBSD /\n/' | sed 's/<\/a>/\n/' | grep "^[0-9]" | head -1`
FASTESTSRV=`curl -s "http://www.openbsd.org/ftp.html#ftp" | fgrep '<a href="ftp://' | sed 's/"ftp:\/\//\n/' | cut -d "/" -f1 | fgrep -v '<a href=' | while read MIRRORSRVS; do ping -c 1 -w 1 $MIRRORSRVS 2>/dev/null | fgrep ' time=' | sed 's/ time=/\n/' | grep ' ms' | sed 's/ ms$/ /' | sed 's/\./ |/' | cut -d "|" -f1 | tr -d '\n'; if [ $? -eq 0 ]; then echo "$MIRRORSRVS"; fi; done | grep "^[0-9]" | sort -un | head -1 | awk '{print $2}'`
LATESTRELVERSHORT=`echo $LATESTRELVER | sed 's/\.//g'`

# NEEDEDARCH=i386
NEEDEDARCH=amd64

wget "$FASTESTSRV/pub/OpenBSD/$LATESTRELVER/$NEEDEDARCH/install$LATESTRELVERSHORT.iso" -O "install$LATESTRELVERSHORT-$NEEDEDARCH.iso"

Q:誰でもPerlでこのスクリプトを書くことができますか? :P(もっと小さくて良いコードがありますか?)

このスクリプトの主な目的は、外部帯域幅を使用することではありません。

答え1

正しいミラーを選択する最も簡単な方法は次のとおりです。ネットワークの選択。この-s 3オプションを使用して、最良の3つのサーバーを選択するように指示できます。

関連情報