В AIX, как я могу получить полный путь к программе, связанной с портом?

В Linux я могу использовать netstat -tulpnw и ps , например:

 # netstat -tulpnw | grep :53 tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1482/named udp 0 0 127.0.0.1:53 0.0.0.0:* 1482/named # ps aux | fgrep 1482 named 1482 0.0 1.0 93656 44900 ? Ssl Sep06 3:17 /usr/sbin/named -u named root 20221 0.0 0.0 4144 552 pts/0 R+ 21:09 0:00 fgrep --color=auto 1482 # 

Как я могу получить полный путь к программе, связанной с портом при использовании ksh в AIX 6?

Как рекомендовано IBM : используйте lsof -i -n и посмотрите порт XY. Если вам нужен lsof вывод lsof , используйте флаг -F и проанализируйте вывод с помощью awk.

Вы можете получить предварительно скомпилированные двоичные файлы для AIX V5 . Я не знаю, есть ли предварительно скомпилированные двоичные файлы для V6; если нет, получите источник и скомпилируйте его.

Попробуйте использовать netstat с rmsock .

 port=$1 addr=`netstat -Aan | grep $port | awk '{print $1}` pid=`rmsock $addr tcpcb | awk '{print $9}'` ps -ef | grep $pid 

Для netstat -A показывает адрес любых блоков управления протоколом, связанных с сокетами, параметр -a показывает состояние всех сокетов, в том числе серверных процессов, а параметр -n дает вывод в числовой форме, поэтому вы не теряя времени, пытаясь разрешить адреса.

rmsock , используя адрес, указанный в выводе netstat tcpcb , и используя tcpcb данных tcpcb , вернет информацию о процессе, поддерживающем этот сокет, включая pid и имя.

Затем вы можете использовать ps -ef | grep $pid ps -ef | grep $pid чтобы получить информацию о процессе.

Вы можете увидеть эту статью в IBM Systems Magazine для получения дополнительной информации об этом.

Один из самых быстрых способов найти порт блокировки приложения – использовать lsof или lsof64 :

 lsof64 -nP | grep $PortNumber 

или

 lsof -nP | grep $PortNumber 

Выше будет возвращать идентификатор процесса / использовать данный номер порта. После этого выполните ниже, чтобы найти запущенное приложение / процесс

 proctree $pid 

Я не знаком с AIX, но вы пробовали аргументы w или e форматирования ps ?

 ps uwx | grep 1482 # or ps uex | grep 1482 
 netstat -ape | grep $PortNumber