Então, como eu não encontrei nenhuma solução fácil / clara / "acertar o chão", tive que fazer uma modesta, correção, refatoração e mais opções por vir.
- > link
Existe uma ferramenta ou um comando que ajuda a capturar o consumo de largura de banda de processos específicos (PID), assim como o Monitor do sistema, mas para um único processo específico, como mostra a seguinte captura de tela
Euficareifelizcomumaferramentadelinhadecomandoque,pelomenos,exportaessehistóricoparaarquivos.(EuestounoUbuntu16.04)
Atualização1
Euqueropelomenosumaferramentacomo
Atualização 2
Qualquer script, combinação de outras ferramentas (como wireshark) ajudaria também.
Então, como eu não encontrei nenhuma solução fácil / clara / "acertar o chão", tive que fazer uma modesta, correção, refatoração e mais opções por vir.
- > link
Você já olhou para a ferramenta em cima? De acordo com a página do manual:
"O carregamento da rede é mostrado por processo se o módulo do kernel 'netatop' tiver sido instalado."
Que tal usar iftop
, para analisar a quantidade de tráfego em determinadas portas e, em seguida, usar lsof
para determinar qual processo está usando qual porta?
Nethogs pode ser o que você quer.
debian / ubuntu / etc
apt-get install nethogs
ou rhel / cent / etc
yum install nethogs
Você o executa na interface de rede, por exemplo
nethogs eth0
No entanto, sua saída é a largura de banda por processo, enviada e recebida. Você também pode monitorar várias interfaces.
DESCRIÇÃO O NetHogs é uma pequena ferramenta 'net top'. Em vez de quebrar o tráfego por protocolo ou por sub-rede, como a maioria das ferramentas, agrupa largura por processo - e não depende de um módulo especial do kernel para ser carregado. Então, se de repente há muito tráfego de rede, você pode disparar NetHogs e imediatamente ver qual PID está causando isso, e se é algum tipo de processo de fiação, mate-o.
UPDATE : OP solicitou a saída para o arquivo. Você pode fazer isso com nethogs:
nethogs -d 1 eth0 > output.txt
-d especifica o intervalo de tempo entre gravações ... para que você possa fazer o comando acima e obter o resultado desejado.
UPDATE2 OP diz que TCP e UDP são um requisito. Em seguida, tente usar o jnettop . Um pouco mais velho, mas faz TCP e UDP. Está disponível em deb / ubuntu e acho que os derivados do RHEL. exemplo:
jnettop --display text -t 5 --format CSV
Isso deve ser canalizado para um arquivo.
Tags networking monitoring