Какой сетевой интерфейс использует процесс?

Вы можете использовать подстановку переменных, например:

MYVAR="List for 2016.doc.irolox"
echo ${MYVAR%.*}

Вышеупомянутое удаляет кратчайшее совпадение . * из внутренней части значения переменной.

Таким образом, вы можете переименовать файл, используя:

mv "${MYVAR}" "${MYVAR%.*}"
2
06.10.2016, 19:49
2 ответа

Используя netstat и grep , вы можете увидеть, какие программы активно , используя конкретный интерфейс (не прослушивает)

Вот что я бы использовал:

sudo netstat -tunape | grep "\(192.168.0.20\)" | grep ESTABLISHED

Это выведет все программы и их PID, которые используют интерфейс 192.168.0.20 .

3
27.01.2020, 22:19

Если вы знаете имя рассматриваемого интерфейса, вы можете использовать это имя и просмотреть свои процессы в разделе /proc. Недавно мы столкнулись с проблемой, когда нам нужно было найти, какие процессы VM (qemu )используют определенный сетевой интерфейс.

Рассматриваемый интерфейс назывался enp98s0.134. Этот цифровой суффикс .134является VLAN, используемой для этого интерфейса.

$ ip a l enp98s0.134
72: enp98s0.134@enp98s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master storage state UP group default qlen 1000
    link/ether 00:25:34:12:a1:7f brd ff:ff:ff:ff:ff:ff

Чтобы узнать, какие процессы используют это, мы просто просмотрели /proc, чтобы найти, какие процессы QEMU ссылаются на него.

$ for i in $(pgrep qemu); do find /proc/$i -type f | grep enp98s0.134$;done | head
/proc/24217/task/24217/net/vlan/enp98s0.134
/proc/24217/task/24217/net/dev_snmp6/enp98s0.134
/proc/24217/task/24221/net/vlan/enp98s0.134
/proc/24217/task/24221/net/dev_snmp6/enp98s0.134
/proc/24217/task/24222/net/vlan/enp98s0.134
/proc/24217/task/24222/net/dev_snmp6/enp98s0.134
/proc/24217/task/24226/net/vlan/enp98s0.134
/proc/24217/task/24226/net/dev_snmp6/enp98s0.134
/proc/24217/task/24227/net/vlan/enp98s0.134
/proc/24217/task/24227/net/dev_snmp6/enp98s0.134

2-я цифра в пути — это PID процессов QEMU. Аналогичный подход можно использовать, если вы вообще не знаете, какой процесс:

$ find /proc/* -type f | grep enp98s0.134$ | head
/proc/1/task/1/net/vlan/enp98s0.134
/proc/1/task/1/net/dev_snmp6/enp98s0.134
/proc/1/net/vlan/enp98s0.134
/proc/1/net/dev_snmp6/enp98s0.134
/proc/10/task/10/net/vlan/enp98s0.134
/proc/10/task/10/net/dev_snmp6/enp98s0.134
/proc/10/net/vlan/enp98s0.134
/proc/10/net/dev_snmp6/enp98s0.134
/proc/100/task/100/net/vlan/enp98s0.134
/proc/100/task/100/net/dev_snmp6/enp98s0.134

Чтобы разобрать PID:

$ find /proc/* -type f | grep enp98s0.134$ | awk -F/ '{print $3}' | sort -u | head -5
1
10
100
101070
104
1
27.01.2020, 22:19

Теги

Похожие вопросы