Jak w systemie AIX mogę uzyskać pełną ścieżkę programu powiązanego z portem?

14

Pod Linuksem mogę używać netstat -tulpnwi pstak:

# 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
# 

Jak uzyskać pełną ścieżkę programu powiązanego z portem podczas korzystania kshz systemu AIX 6?

LanceBaynes
źródło

Odpowiedzi:

10

Zgodnie z zaleceniami IBM : użyj lsof -i -nportu XY i poszukaj go. Jeśli chcesz analizować dane wyjściowe lsof, użyj -Fflagi i przeanalizuj dane wyjściowe za pomocą awk.

Można uzyskać wstępnie skompilowane pliki binarne dla systemu AIX V5 . Nie wiem, czy istnieją wersje binarne dla V6; jeśli nie ma, pobierz źródło i skompiluj je.

Gilles „SO- przestań być zły”
źródło
Program lsof nie zawsze jest dostępny w systemie AIX: P
LanceBaynes,
2
Więc Pobierz go lub skompilować je od źródła , to zalecana przez IBM .
Gilles „SO- przestań być zły”
na maszynach nie zawsze jest „lsof” ... ale mógłbym wziąć to za dobrą odpowiedź (inne też są „dobre”! ty)
LanceBaynes 30.09.11
4

Spróbuj użyć netstatz rmsock.

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

Dla netstattego, -Apokazuje adres żadnej bloków Control Protocol związanych z gniazdami, że -apokazy opcja stan wszystkich gniazd w tym procesów serwerowych, a -nopcja daje wyjście w postaci numerycznej, więc nie marnujesz czasu na próby adresów rozstrzygają .

rmsock, użycie adresu podanego w danych wyjściowych kolumny 1 netstati użycie tcpcbbazy danych zwróci informacje o procesie przechowującym to gniazdo, w tym identyfikator pid i nazwę.

Następnie można użyć, ps -ef | grep $pidaby uzyskać informacje o procesie.

Więcej informacji na ten temat można znaleźć w tym artykule w IBM Systems Magazine.

Tim Kennedy
źródło
to zdarzenie nie działa poprawnie w moim systemie AIX
Kiwy
1

Jednym z najszybszym sposobem znalezienia port blokujący aplikacja jest użycie lsof lub lsof64 :

lsof64 -nP | grep $PortNumber

lub

lsof -nP | grep $PortNumber

Powyżej zwróci blokowanie identyfikatora procesu / użycie podanego numeru portu. Gdy już to zrobisz, uruchom poniżej, aby znaleźć działającą aplikację / proces

proctree $pid
Saumil
źródło
0

Nie znam systemu AIX, ale czy próbowałeś użyć argumentów wlub eformatowania ps?

ps uwx | grep 1482
# or 
ps uex | grep 1482
frogstarr78
źródło
Możesz sprawdzić instrukcję online. AIX psobsługuje tradycyjne flagi BSD, ale w jaki sposób wskazane flagi pomagają?
Gilles „SO- przestań być zły”
Hm, wygląda na to, że robią różne rzeczy w AIX. Chociaż wspomniana dokumentacja zawiera opcję l, która wypisuje pola „USER, PID,% CPU,% MEM, SZ, RSS, TTY, STAT, STIME, TIME i COMMAND”
frogstarr78 25.11
0
netstat -ape | grep $PortNumber
Anonimowy
źródło
Czy możesz wyjaśnić, co robi polecenie? Wklejanie kodu bez uzasadnienia nie jest bardzo pomocne.
n0pe