Sous AIX, comment puis-je obtenir le chemin complet d'un programme lié à un port?


14

Sous Linux, je peux utiliser netstat -tulpnwet ps, comme ceci:

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

Comment puis-je obtenir le chemin complet d'un programme lié à un port lors de l'utilisation kshsous AIX 6?

Réponses:


10

Comme recommandé par IBM : utilisez lsof -i -net recherchez le port XY. Si vous voulez une sortie analysable à partir de lsof, utilisez l' -Findicateur et analysez la sortie avec awk.

Vous pouvez obtenir des fichiers binaires précompilés pour AIX V5 . Je ne sais pas s'il existe des binaires précompilés pour V6; s'il n'y en a pas, récupérez la source et compilez-la.


lsof n'est pas toujours disponible sur AIX: P
LanceBaynes

2

il n'y a pas toujours "lsof" sur les machines ... mais je pourrais prendre cela comme une bonne réponse (d'autres sont "bonnes" aussi! ty)
LanceBaynes

4

Essayez d'utiliser netstatavec rmsock.

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

Pour netstat, le -Aaffiche l'adresse de tous les blocs de contrôle de protocole associés aux sockets, l' -aoption affiche l'état de tous les sockets, y compris ceux des processus serveur, et l' -noption donne une sortie sous forme numérique, vous ne perdez donc pas de temps à essayer de résoudre les adresses .

rmsock, en utilisant l'adresse donnée dans la sortie column1 de netstat, et en utilisant la tcpcbbase de données, retournera des informations sur le processus contenant ce socket, y compris le pid et le nom.

Vous pouvez ensuite utiliser ps -ef | grep $pidpour obtenir les informations sur le processus.

Vous pouvez consulter cet article dans IBM Systems Magazine pour plus d'informations à ce sujet.


cet événement ne s'exécute pas correctement sur mon AIX
Kiwy

1

L'un des moyens les plus rapides de trouver le port de verrouillage d'application est d'utiliser lsof ou lsof64 :

lsof64 -nP | grep $PortNumber

ou

lsof -nP | grep $PortNumber

Ci-dessus retournera le verrouillage de l'ID de processus / en utilisant le numéro de port donné. Une fois que vous l'avez, exécutez ci-dessous pour trouver l'application / le processus en cours

proctree $pid

0

Je ne connais pas AIX, mais avez-vous essayé les arguments de formatage wou ?eps

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

Vous pouvez consulter le manuel en ligne. AIX psprend en charge les indicateurs BSD traditionnels, mais comment les indicateurs que vous avez indiqués aident-ils?
Gilles 'SO- arrête d'être méchant'

Hm, on dirait qu'ils font des choses différentes sur AIX. Bien que la documentation que vous avez référencée comprenne une option l qui affiche "USER, PID,% CPU,% MEM, SZ, RSS, TTY, STAT, STIME, TIME et COMMAND"
frogstarr78

0
netstat -ape | grep $PortNumber

Pourriez-vous expliquer ce que fait la commande? Coller du code sans justification n'est pas très utile.
n0pe
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.