1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

BASH script para testar ligação do ISP

Discussão em 'Programação' iniciada por VuDu, 27 de Fevereiro de 2009. (Respostas: 7; Visualizações: 796)

  1. VuDu

    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/1350412
     
    Última edição: 1 de Março de 2009
  2. slack_guy

    slack_guy Power Member

    Qualquer coisa como:
    Código:
    $ time wget -pq http://www.example.com/ficheiro.tar.gz
    
    BTW, é 'Portugal' e não 'Portigal' ;-)
     
  3. VuDu

    VuDu Power Member

    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! ;)
     
  4. PrOdG

    PrOdG Power Member

    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:
    Para binários não precisas do -p (nem faz muito sentido, se pensares nisso ;)).
     
    Última edição: 27 de Fevereiro de 2009
  5. VuDu

    VuDu Power Member

    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. :)
     
  6. VuDu

    VuDu Power Member

    Ok, o script para os traceroutes foi actualizado e adicionei o script para testar a bandwidth:

    routing: http://www.pastebin.ca/1348939
    bandwidth: http://www.pastebin.ca/1348947

    Falta-me testar o upload e idealmente remover o raio do "progresso" do wget. Já mudei para dots, mas é informação que não interessa para o caso.
     
    Última edição: 27 de Fevereiro de 2009
  7. PrOdG

    PrOdG Power Member

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

    VuDu Power Member

    Muchas gracias pelo --delete-after :)

    em relação ao -p
    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).
    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: 1 de Março de 2009

Partilhar esta Página