Trickle
Utilizando o trickle para limitar a velocidade de transmissão de arquivos
Hoje vou mostrar como limitar o download/upload de arquivos através da rede por linha de comando. Logico que existem várias formas de fazer e cada programa tem sua utilidade e seu uso.
Vamos dizer que você queira fazer o download de um arquivo .ISO do ubuntu e queira limitar o download a 100kb por segungo.
Vou mostrar de duas formas:
Utilizando o wget
wget --limit-rate=100k http://www.mirrorservice.org/sites/releases.ubuntu.com//precise/ubuntu-12.04.2-desktop-amd64.iso
Utilizando o trickle
trickle -s -d 100 http://www.mirrorservice.org/sites/releases.ubuntu.com//precise/ubuntu-12.04.2-desktop-amd64.iso
Os dois comandos fazem exatamente a mesma coisa, eles fazem o download do arquivo ubuntu e o colocam na pasta corrente onde o comando esta sendo executado.
Agora vou mostrar uma outra necessidade, preciso atualizar todos os pacotes da minha distribução e sabemos que tanto o apt-get como o aptitude utilizam toda a banda de download . Este seria o momento certo de utilizar o trickle , tendo em vista, que o wget não recebe outros programas como entrada padrão.
Atualizando os pacotes via aptitude utilizando somente 100kb da rede.
trickle -s -d 100 aptitude safe-upgrade -y
Com este comando todos os pacotes serão atualizados utilizando somente 100kb da rede até que todos os downloads sejam finalizados.
Este comando acredito que possa ser utilizado em conjunto com qualquer outro que utilize a rede como entrada de dados.
Vamos testar então.
Fazendo um speedTest para testar se a limitação realmente esta funcionando.
Vou abrir meu browser chrome na página do speedTest.net para testar se a limitação realmente esta acontecendo. O “2 > /dev/null” redireciona os erros (stdout) de plugins para /dev/null , pois, assim não ficarei vendo erros na tela 😛
A saída será algo em torno de 0,520MB mais ou menos.
trickle -s -d 60 /opt/google/chrome/chrome http://www.speedtest.net/ 2> /dev/null
Por hoje é isso, quer maiores informações ???
man trickle
Abraços.
Dinei