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.
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.
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.