Muitos dos utilizadores de servidores Linux, apenas estão limitados à interacção com a máquina através da linha de comandos, vulgo terminal. No artigo de hoje, vamos ensinar a medir a velocidade da sua conexão à internet através do terminal.
Para este exemplo, irei usar um servidor que tenho em casa, ligado via ethernet a uma porta gigabit. A única forma que tenho para comunicar com o servidor é apenas a linha de comandos.
Ora, vamos ver como ter a velocidade de internet por linha de comandos com o speedtest.
Vamos primeiro fazer o download de um script disponível no GitHub para fazer testes em linha de comandos. Utilizamos o wget.
Um reparo. Em vez de utilizarem o wget e uma vez que estamos a falar de um script em python (.py), podíamos utilizar o pip ou o easy_install.
De seguida, e como é um script, temos de dar permissões de execução ao script.
chmod +x speedtest-cli
Como próximo e último passo, corremos o script.
E voilá. Aí está o resultado. De uma velocidade de 24Mbps contratada, tenho 4.08Mbps.
Eu como gosto de manter as coisas um pouco organizadas, estou a guardar este histórico de velocidades num ficheiro. Podem fazê-lo de duas formas. Editar o script para redirecionar o output para um ficheiro ou utilizar um redirecionamento do output do processo (STDOUT).
Segui a segunda opção, pelo simples facto de não querer estar a ler código que não escrevi. Utilizei os caracteres ‘>>’ para redirecionar o output e acrescentar ao conteúdo existente do ficheiro de destino.
Desta vez ainda foi pior. Apanhei uma velocidade de 3.24Mbps.
Além da velocidade durante o dia, tenho outro problema. A velocidade durante a noite. Isto deve-se ao facto da Guarda ter temperaturas muito baixas durante a noite, e com elas, o cobre perder propriedades de transmissão.
O próximo passo, é fazer um script que corra de duas em duas horas e guarde a informação de quando correu no mesmo ficheiro.
O script feito é um script simples. Criei um ficheiro chamado testevelocidade.sh e com o nano inseri os seguintes comandos.
Resumidamente, criei uma variável (data), que guarda o valor da data actual e na linha seguinte é adicionado no ficheiro velocidades.txt. É uma forma de saber quando tenho uma nova entrada no ficheiro e quando foi feita. De seguida corri o script como expliquei anteriormente, e mostro os últimos resultados no terminal.
Depois de criado, é preciso dar permissões de execução ao script.
chmod +x testevelocidade.sh
E podemos correr.
NOTA: Agora não me deu resultados muito maus 🙂
Como próximo passo, e para correr de duas em duas horas, vamos utilizar o crontab.
Primeiro, vamos editar o crontab do utilizador.
NOTA: Se lhe faz confusão a utilização do crontab, é aconselhado que reveja o serviço.
crontab -e
De seguida adicionamos a entrada para correr de duas em duas horas o script criado.
O resultado de crontab -l deverá ser o seguinte.
Se tudo correu bem, têm o script a correr de duas em duas horas. Para testar, em vez de duas em duas horas, podem alterar o job para correr de dois em dois minutos. Depois disso utilizam o comando wc para contar as linhas do ficheiro de velocidades.
wc -l velocidades.txt
Tambem, quando o job corre, o utilizador responsável, recebe um mail a indicar que correu em /var/mail/pi.
O desafio que deixo é limpar o ficheiro de velocidades de dois em dois dias por exemplo.
E já têm o vosso histórico de velocidade de internet. Alguma duvida, deixem nos comentários.