Medir o consumo de rede por programa e mês

5

Estou à procura de um monitor de execução permanente que possa emitir um relatório de largura de banda mensal (ou diário, etc), de acordo com o programa. Exemplo de saída desejada:

Bandwidth consumption: last 30 days
==============
Program     Downloaded   Uploaded
/usr/bin/ssh  30MB       100MB
/usr/bin/java 9000MB     3000MB

(também pode ser por processo em vez de por programa, mas eu teria que consolidar as entradas manualmente)

Após uma pesquisa significativa (incluindo muitas perguntas semelhantes sobre o Stack Exchange), ainda não encontrei esse monitor. Talvez isso não seja possível no Linux. Ou talvez isso seja uma necessidade incomum.

    
por vemv 28.03.2016 / 15:34

2 respostas

3

Use nethogs -t para capturar o uso por processo e analisar a saída. De link

sh -ic "{ /usr/sbin/nethogs -t eth1 &> output; \
kill 0; } | { sleep $TIMEOUT; \
kill 0; }" 3>&1 2>/dev/null

Os campos de saída são:

Process / Process id / User id    sent kbps    recv kbps

e analise a saída usando o link

Outra solução da SO: link

Mas gosto mais da primeira solução.

    
por 28.03.2016 / 16:01
2

Você pode querer acumular e processar o netstat ou iptraf manualmente em algum shell com manual sort ing.

A maioria dos monitores no linux são runtime, alguns estão inscritos aqui .

    
por 28.03.2016 / 16:27