Nethogs может быть тем, что вам нужно.
debian/ubuntu/etc
apt-get install nethogs
или rhel/cent/etc
yum install nethogs
Вы запускаете его на сетевом интерфейсе, например,
nethogs eth0
Однако, его выход - это пропускная способность на процесс, отправленные и полученные данные. Вы также можете отслеживать несколько интерфейсов.
ОПИСАНИЕ NetHogs - это небольшой инструмент 'net top'. Вместо того, чтобы разбивать трафик на протоколы или подсети, как это делает большинство подобных инструментов, он группирует полосу- по ширине по процессам - и не зависит от специального модуля ядра, который должен быть загрузки. Поэтому, если вдруг возникло много сетевого трафика, вы можете запустить запустить NetHogs и немедленно увидеть, какой PID вызывает это, и если это какой-то крутящийся процесс, убейте его.
UPDATE: ОП попросил вывести данные в файл. Это можно сделать с помощью nethogs:
nethogs -d 1 eth0 > output.txt
-d задает временной интервал между записями... так что вы могли бы выполнить приведенную выше команду и получить желаемый результат.
UPDATE2 ОП говорит, что TCP и UDP - это требование. Тогда попробуйте использовать jnettop. Он немного старше, но поддерживает TCP и UDP. Он доступен в deb/ubuntu и, я думаю, в производных RHEL. пример:
jnettop --display text -t 5 --format CSV
Это должно быть передано в файл.
Поместите все в сценарий следующим образом:
#! /bin/bash
#
su -c '/usr/bin/tmux new-session -s "all" -d'
tmux send "path of Program 1" C-m
tmux rename-window "Program 1"
tmux new-window
tmux send "path of Program 2" C-m
tmux rename-window "Program 2"
tmux new-window
tmux send "path of Program 3" C-m
tmux rename-window "Program 3"
tmux attach
Он запустит новый сеанс tmux под названием all с 3 окнами, называемыми Program1 , Program2 и Program3 , каждая из которых выполняет каждую программу.
Даже если программа остановится, окно не закроется.
Вы можете оставить терминал открытым, выполнив команду с тем, что ожидает ввода пользователя:
tmux new-window 'make ; read'
Если ваша оболочка не поддерживает прочтите встроенную команду
, вы можете использовать, например. sed -n q
.