2013-04-01 2 views
0

Я хотел бы записать общее количество байтов, переданных по сети разными версиями VNC. Мой план состоит в том, чтобы запустить средство просмотра VNC, запустить сценарий удаленно, который выполняет некоторые действия и отображает некоторую графику, а затем отключается.Сетевое использование процесса в linux

Как вы можете записать общее сетевое использование только одного процесса в Linux? Я не хочу измерять что-либо еще, что происходит в системе.

ответ

0

Вы можете запускать различные версии зрителей VNC на разных номерах портов, а затем записывать весь трафик на эти порты с помощью такого инструмента, как tcpdump.

Там может быть какой-то способ записи трафика в процессе, но делают это портом гораздо более очевидным и простым

грубый пример использования Perl, чтобы добавить вверх/фильтр

sudo tcpdump -li eth1 ' port 5900'|perl -ne 'print $c,"\n"; $c+=$1 if (/length (\d+)/);' 
+0

Что-то вроде 'ТСРйитр -i eth1 'порт 1080'', а затем преобразовать вывод в байтах как-то? – jock43

0

Вы должны попробовать iftop Команда Linux.

$ sudo iftop -i eth0 -P 
server.example.com:ssh  => client.example.com:51365   1.73kb 2.72kb 2.72kb 

более элегантный способ использования фильтров:

$sudo iftop -i eth0 -f "dst port 22" 
+0

Очень интересное приложение. Спасибо. Можно ли сохранить общее использование данных? – jock43

+0

'iftop' не имеет такой опции, но' iptraf' может входить в файл. – Satish

Смежные вопросы