Як в AIX можна отримати повний шлях програми, прив’язаної до порту?


14

Під 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?

Відповіді:


10

Як рекомендує IBM : використовуйте lsof -i -nі шукайте порт XY. Якщо ви хочете проаналізувати висновок з lsof, використовуйте -Fпрапор і проаналізуйте вихід з awk.

Ви можете отримати попередньо складені бінарні файли для AIX V5 . Я не знаю, чи є попередньо складені бінарні файли для V6; якщо таких немає, дістаньте джерело і складіть його.


lsof не завжди доступний на AIX: P
LanceBaynes


на машинах не завжди є "lsof" ... але я міг би сприймати це як гарну відповідь (інші "теж" теж! ty)
LanceBaynes

4

Спробуйте використовувати 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, використовуючи адресу, вказану у висновку стовпця1 netstat, та використовуючиtcpcb базу даних, поверне інформацію про процес, що містить цей сокет, включаючи pid та ім’я.

Потім можна використовувати ps -ef | grep $pid для отримання інформації про процес.

Ти можеш бачити цією статтею у журналі IBM Systems Magazine, щоб отримати додаткову інформацію про це.


це не подія, яка виконується правильно в моєму AIX
Kiwy

1

Один з найшвидших способів знайти порт блокування програми - використовувати lsof або lsof64 :

lsof64 -nP | grep $PortNumber

або

lsof -nP | grep $PortNumber

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

proctree $pid

0

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

ps uwx | grep 1482
# or 
ps uex | grep 1482

Ви можете перевірити посібник в Інтернеті. AIX psпідтримує традиційні прапорці BSD, але як допомагають вказані вами прапори?
Жил 'ТАК - перестань бути злим'

Гм, схоже, вони роблять різні речі на AIX. Хоча документація, на яку ви посилаєтесь, включає опцію l, яка друкує поля "USER, PID,% CPU,% MEM, SZ, RSS, TTY, STAT, STIME, TIME та COMMAND"
frogstarr78,

0
netstat -ape | grep $PortNumber

Чи можете ви пояснити, що робить команда? Вставка коду без обґрунтування не дуже корисна.
n0pe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.