Como descobrir quanto da largura de banda da Internet é usada por todos os processos, exceto por um processo específico?

2

Como uma pergunta de acompanhamento para este :

Estou baixando um arquivo em vários computadores remotos usando o comando curl e estou usando o parâmetro --limit-rate para limitar a velocidade de download àqueles cuja internet está sendo usada:

curl --limit-rate 10k -r 104857601-209715200 -o distro2.iso 'http://files.cdn/distro.iso'

Então eu tenho que monitorar periodicamente o uso da Internet de cada computador (como a cada 5 segundos), e diminuir dinamicamente o --limit-rate uma vez que a internet está sendo usada pelo usuário e aumentá-lo à medida que o uso da internet se torna ocioso. Portanto, a única coisa que preciso saber é se o usuário do computador remoto está usando a Internet (como navegar na Web ou baixar um arquivo). Existe alguma maneira fácil de descobrir isso? Eu acho que tenho que obter o PID de curl e excluí-lo da lista de aplicativos que estão usando a internet para descobrir se qualquer outro aplicativo está usando a internet. Eu só não sei qual comando é melhor usar. Usando comandos que não exigem privilégios sudo são preferidos. Qualquer conselho seria muito apreciado!

    
por Meysam 07.09.2014 / 11:21

1 resposta

1

Certa vez, escrevi um script em perl que executava o ifconfig e usava a exibição de bytes para descobrir a largura de banda média consumida durante o período de pesquisa (5 segundos ou qualquer outro). Portanto, supondo que você saiba em que direção a taxa está sendo executada atualmente, é possível deduzir essa velocidade ao longo do período de tempo (10 k vezes 5 segundos) e descobrir se há muita coisa acontecendo. Em seguida, ajuste a velocidade conforme necessário. Eu posso fornecer um link para esse script perl se você quiser tentar algo assim.

    
por 07.09.2014 / 23:44