AIX altında, bir bağlantı noktasına bağlı bir programın tam yolunu nasıl edinebilirim?


14

Linux altında kullanabileceğim netstat -tulpnwve psböylece gibi:

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

kshAIX 6'da kullanırken bir programın tam yolunu bir bağlantı noktasına bağlı olarak nasıl edinebilirim ?

Yanıtlar:


10

IBM tarafından önerildiği gibi : lsof -i -nXY bağlantı noktasını kullanın ve arayın. Ayrıştırılabilir çıktı almak istiyorsanız lsof, -Fbayrağı kullanın ve çıktıyı awk ile ayrıştırın.

AIX V5 için önceden derlenmiş ikili dosyalar alabilirsiniz . V6 için önceden derlenmiş ikili dosyalar olup olmadığını bilmiyorum; yoksa, kaynağı alın ve derleyin.


lsof her zaman
AIX'de


her zaman makinelerde "lsof" yoktur ... ama bunu iyi bir cevap olarak alabilirim (diğerleri de "iyi"! ty)
LanceBaynes

4

Kullanmayı deneyin netstatile rmsock.

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

Çünkü netstat, -Asoketlerle ilişkili herhangi bir protokol kontrol bloğunun adresini gösterir, -aseçenek sunucu süreçleri de dahil olmak üzere tüm soketlerin durumunu gösterir ve -nseçenek sayısal biçimde çıktı verir, böylece adresleri çözmeye çalışırken zaman kaybetmezsiniz. .

rmsock, sütun1 çıktısında verilen adresi netstatkullanarak ve tcpcbveritabanını kullanarak, bu soketi tutan işlem hakkında, pid ve name dahil bilgileri döndürür.

Daha sonra ps -ef | grep $pidişlem bilgilerini almak için kullanabilirsiniz .

Bu konuda daha fazla bilgi için bu makaleyi IBM Systems Magazine'de görebilirsiniz .


Bu benim AIX
Kiwy

1

Uygulama kilitleme bağlantı noktasını bulmanın en hızlı yollarından biri lsof veya lsof64 kullanmaktır :

lsof64 -nP | grep $PortNumber

veya

lsof -nP | grep $PortNumber

Yukarıdaki işlem kimliği kilitleme / verilen bağlantı noktası numarasını kullanarak dönecektir. Sahip olduktan sonra çalışan uygulamayı / işlemi bulmak için aşağıda çalıştırın

proctree $pid

0

AIX'e aşina değilim, ancak argümanları biçimlendirmeyi wveya ebiçimlendirmeyi denediniz psmi?

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

Kılavuzu çevrimiçi olarak kontrol edebilirsiniz . AIX psgeleneksel BSD bayraklarını destekliyor, ancak belirttiğiniz bayraklar nasıl yardımcı oluyor?
Gilles 'SO- kötü olmayı bırak'

Hm, AIX'te farklı şeyler yapıyorlarmış gibi görünüyor. Başvurduğunuz belgeler "KULLANICI, PID,% CPU,% MEM, SZ, RSS, TTY, STAT, STIME, TIME ve COMMAND alanlarını" basan bir l seçeneği içeriyor olsa da
frogstarr78

0
netstat -ape | grep $PortNumber

Komutun ne yaptığını açıklayabilir misiniz? Gerekçesiz kod yapıştırmak çok yararlı değildir.
n0pe
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.