In AIX, come posso ottenere il percorso completo di un programma associato a una porta?


14

Sotto Linux posso usare netstat -tulpnwe ps, in questo modo:

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

Come posso ottenere il percorso completo di un programma associato a una porta quando utilizzo kshin AIX 6?

Risposte:


10

Come raccomandato da IBM : utilizzare lsof -i -ne cercare la porta XY. Se vuoi un output analizzabile da lsof, usa il -Fflag e analizza l'output con awk.

È possibile ottenere file binari precompilati per AIX V5 . Non so se ci sono binari precompilati per V6; in caso contrario, ottieni il sorgente e compilarlo.


lsof non è sempre disponibile su AIX: P
LanceBaynes il


non ci sono sempre "lsof" sulle macchine ... ma potrei prenderlo come una buona risposta (anche altri sono "buoni"! ty)
LanceBaynes

4

Prova a usare netstatcon rmsock.

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

Perché netstat, -Amostra l'indirizzo di tutti i blocchi di controllo del protocollo associati ai socket, l' -aopzione mostra lo stato di tutti i socket inclusi quelli dei processi del server e l' -nopzione fornisce l'output in forma numerica, quindi non stai perdendo tempo a cercare di risolvere gli indirizzi .

rmsock, utilizzando l'indirizzo indicato nell'output della colonna1 netstate utilizzando il tcpcbdatabase, restituirà informazioni sul processo che contiene quel socket, inclusi pid e nome.

È quindi possibile utilizzare ps -ef | grep $pidper ottenere le informazioni sul processo.

È possibile consultare questo articolo su IBM Systems Magazine per ulteriori informazioni al riguardo.


questo non è un evento eseguito correttamente sul mio AIX
Kiwy

1

Uno dei modi più rapidi per trovare la porta di blocco dell'applicazione è usare lsof o lsof64 :

lsof64 -nP | grep $PortNumber

o

lsof -nP | grep $PortNumber

Sopra restituirà il blocco ID processo / utilizzando il numero di porta specificato. Dopo averlo eseguito, esegui di seguito per trovare l'applicazione / processo in esecuzione

proctree $pid

0

Non ho familiarità con AIX, ma hai provato gli argomenti di formattazione wo ?eps

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

Puoi consultare il manuale online. AIX pssupporta i tradizionali flag BSD, ma in che modo aiutano i flag che hai indicato?
Gilles 'SO- smetti di essere malvagio' il

Hm, sembra che facciano cose diverse su AIX. Sebbene la documentazione a cui fai riferimento includa un'opzione l che stampa i campi "USER, PID,% CPU,% MEM, SZ, RSS, TTY, STAT, STIME, TIME e COMMAND"
frogstarr78,

0
netstat -ape | grep $PortNumber

Potresti spiegare cosa sta facendo il comando? Incollare il codice senza giustificazione non è molto utile.
n0pe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.