Encontrar servidor com pequena latência de ping (meu script, mas alguém pode escrevê-lo em, por exemplo: Perl?) [closed]

1

Eu quero baixar o OpenBSD com FTP com um script, e quero baixá-lo de um servidor que esteja perto de mim. Então eu quero escolher um espelho que tenha baixa "latência de ping". Eu escrevi um pequeno script, que funciona muito bem (só testado no 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"

P: alguém pode escrever esse script em Perl? : P (com um código menor e mais bonito?)

O principal objetivo deste script é: por exemplo, não usar a largura de banda do país estrangeiro.

    
por LanceBaynes 26.05.2011 / 18:58

1 resposta

4

A maneira mais fácil de selecionar alguns espelhos adequados é com netselect . Você pode usar a opção -s 3 para dizer para escolher os 3 melhores servidores.

    
por 26.05.2011 / 21:10