Como posso obter a largura de banda de uma interface a qualquer segundo na linha de comando do Linux?

3

Estou fazendo um projeto da escola no qual quero obter a largura de banda de uma interface de rede a qualquer segundo, ou algum outro pequeno incremento de tempo. Eu preciso disso para um script em Perl estou trabalhando. Portanto, ele precisa ser não interativo e apenas imprime resultados.

Alguma sugestão?

    
por Alex 06.11.2010 / 20:25

2 respostas

3

O número de bytes enviados e recebidos por eth0 desde que a interface foi ativada pode ser lido em /sys/class/net/eth0/statistics/tx_bytes e /sys/class/net/eth0/statistics/rx_bytes , respectivamente. O número de pacotes pode ser lido em …/tx_packets e …/rx_packets . Se você tiver um kernel antigo que não forneça esses arquivos, os dados estarão disponíveis na saída de /sbin/ifconfig eth0 .

    
por 06.11.2010 / 21:37
0

Uma abordagem simples seria:

  • execute ifconfig interface name uma vez, capture sua saída
  • extrai os valores de "bytes RX" e "bytes TX"
  • aguarde um segundo
  • repita os dois primeiros passos novamente
  • calcule os deltas
por 06.11.2010 / 21:39