BASH script para testar ligação do ISP

VuDu

Power Member
Estive a martelar um scriptzito em BASH para testar o routing/lag da ligação. Já desactivei o opendns para usar directamente o DNS do meu ISP.

O script actualmente está a fazer traceroutes e pings para 12 servidores por todo o mundo. Apanhei-os da lista de mirrors do archlinux :P


Agora a minha ideia é fazer algo semelhante mas para testar a velocidade de download. Sacar uns 10MB de alguns sites diferentes para ver a velocidade. O wget será bom para isso?

Não conheço locais para fazer upload sem compromissos mas era interessante arranjar algo semelhante, porque era útil calcular também a velocidade de upload.


Aceita-se com todo o agrado sugestões e correcções!!!


Últimas versões:
routing.sh: http://pastebin.ca/1350411
bandwidth.sh: http://pastebin.ca/1350412http://www.pastebin.ca/1348963
 
Última edição:
Agora a minha ideia é fazer algo semelhante mas para testar a velocidade de download. Sacar uns 10MB de alguns sites diferentes para ver a velocidade. O wget será bom para isso?

Qualquer coisa como:
Código:
$ time wget -pq http://www.example.com/ficheiro.tar.gz

BTW, é 'Portugal' e não 'Portigal' ;-)
 
LOL typo :P
Como estou a enviar tudo para um logfile se calhar nem me vou dar ao trabalho de contar o tempo... o wget deve de mostrar algumas estatísticas ;)

Em relação ao upload, agradecia ideias! ;)
 
Código:
--- vudu.sh	2009-02-27 18:30:23.000000000 +0000
+++ mine.sh	2009-02-27 18:28:51.000000000 +0000
@@ -3 +3 @@
-LOGPATH="/home/$USER/netvisao_logs/"
+LOGPATH="$HOME/netvisao_logs/"
@@ -5 +5 @@
-if [ ! -d "/home/$USER/netvisao_logs/" ]; then
+if [ ! -d "$LOGPATH" ]; then
@@ -11,3 +11,2 @@
-echo > $LOGFILE
-
-exec 2>&1 >>  $LOGFILE
+touch $LOGFILE
+exec &> $LOGFILE
@@ -70 +69 @@
-echo "Portigal"
+echo "Portugal"
Quanto ao upload podes utilizar o curl, duvido é que vás arranjar muitos servidores para onde possas fazer upload à vontade.

EDIT:
Qualquer coisa como:
Código:
$ time wget -pq http://www.example.com/ficheiro.tar.gz
Para binários não precisas do -p (nem faz muito sentido, se pensares nisso ;)).
 
Última edição:
Thanks plo diff... realmente tinha coisas desnecessárias ;)

aii aiii ninguém deixa escapar o typo :tareon:

Em relação ao -p no wget acho que serve para força-lo a sacar e substituir o ficheiro mesmo que ele já exista. :)
 
O -p serve para fazer download de todo o conteúdo necessário para apresentar a página que estás a pedir. Se for um .html com vários links (imagens, áudio, etc), o -p faz com que o wget os siga também.
Tens no teu script assim:
Código:
wget http://ftp.nluug.nl/pub/metalab/distributions/archlinux/core/os/i686/kernel26-2.6.28.7-1-i686.pkg.tar.gz -a $LOGFILE --progress=dot:mega
if [ -e kernel26-2.6.28.7-1-i686.pkg.tar.gz ]; then
    rm kernel26-2.6.28.7-1-i686.pkg.tar.gz;
fi
Faz antes:
Código:
wget -q --delete-after http://ftp.nluug.nl/pub/metalab/distributions/archlinux/core/os/i686/kernel26-2.6.28.7-1-i686.pkg.tar.gz
-q : quiet
--delete-after : auto explanatório
O -a $LOGFILE não te serve de nada porque já redireccionaste o stdout e o stderr para o $LOGFILE no início do script.
 
Muchas gracias pelo --delete-after :)

em relação ao -p
When running Wget with -r or -p, but without -N or -nc, re-
downloading a file will result in the new copy simply overwriting
the old. Adding -nc will prevent this behavior, instead causing
the original version to be preserved and any newer copies on the
server to be ignored.
Por exemplo -r -nd pode ser útil caso o script seja interrompido a meio e fique "meio ficheiro" sacado, mas não acho que valha a pena usar.

Em relação ao -q, dá informação a menos (e o -nv também). O que me interessa no wget é a última frase (penúltima se usar o --delete-after) que diz qual a velocidade média (hum... agora deu-me uma ideia... usar o tail para filtrar o lixo do progresso).
2009-02-27 19:38:31 (609 KB/s) - `bash-3.2.048-3-i686.pkg.tar.gz' saved [534607/534607]

EDIT:
Updated: http://www.pastebin.ca/1348963
Não consegui usar nem o tail nem o grep, porque parece que esses comandos não conseguem apanha o output do wget com o |. Fica como estava.

EDIT:
Update dos 2 scripts. Tinham um problema no comando date que estava a criar nomes de ficheiros inválidos.
 
Última edição:
Back
Topo