Grep valores de nethog e netperf

0

Eu preciso monitorar as atividades de rede de um processo e a largura de banda da conexão. Então, decidi usar nethog e netperf combinados com grep e awk para gravar os valores em um arquivo.

nethog comando: nethogs -t eth0 | grep firefox | awk '{ print $3 }' (eu quero pegar a velocidade de upload / download). O primeiro problema é que o comando não imprime nada.

Mais detalhes: comando: nethogs -t eth0 | grep firefox output:

usr/lib/firefox/firefox-bi�)/4956/1000  0.338867    0.239063
/usr/lib/firefox/firefox-bi�)/4956/1000 0.543555    0.274219
/usr/lib/firefox/firefox-bi�)/4956/1000 0.794531    0.489844
/usr/lib/firefox/firefox-bi�)/4956/1000 0.794531    0.489844
/usr/lib/firefox/firefox-bi�)/4956/1000 0.749023    0.589844
/usr/lib/firefox/firefox-bi�)/4956/1000 1.30098 3.47617
/usr/lib/firefox/firefox-bi�)/4956/1000 1.90449 8.0127
/usr/lib/firefox/firefox-bi�)/4956/1000 5.31641 25.0033
/usr/lib/firefox/firefox-bi�)/4956/1000 8.60762 42.0176

Eu quero os dois valores no canto inferior direito. Mas como você pode ver a saída não é consistente (o espaço), adicione | awk '{print $3}' most of the time return nothing . E eu não posso consertar isso.

netperf comando: netperf -H 192.168.1.10 e a saída é:

Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    10^6bits/sec  

524288 524288 262144    10.00    **718.62**

Eu quero imprimir o valor no canto inferior direito, mas não tenho ideia de como. Esse é o segundo problema = > resolvido por fedorqui!

Vocês podem me ajudar? Qualquer ideia será apreciada!

    
por Tiana987642 07.03.2014 / 16:08

2 respostas

1

Para o 2º problema , você pode fazer:

your_command | tail -1 | awk '{print $NF}'

Isso imprimirá o último campo da última linha da entrada especificada.

    
por 07.03.2014 / 16:30
2

Vamos começar com isso:

nethogs -t eth0 | awk '/firefox/{ print $3 }'

netperf -H 192.168.1.10 | awk 'END{ print $NF }'

Se isso não funcionar, forneça uma amostra de entrada para os scripts awk, saída esperada e explicações.

Você precisaria:

netperf -H 192.168.1.10 | awk '{v=$NF} END{ print v }'

com alguns awks, já que eles não são obrigados pelo POSIX a reter os campos na seção END.

    
por 07.03.2014 / 18:17

Tags