ภายใต้ 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

ลองใช้ด้วยnetstatrmsock

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การใช้ที่อยู่ที่กำหนดในเอาต์พุตของ column1 netstatและการใช้tcpcbฐานข้อมูลจะส่งคืนข้อมูลเกี่ยวกับกระบวนการที่เก็บซ็อกเก็ตนั้นรวมถึง pid และชื่อ

จากนั้นคุณสามารถใช้ps -ef | grep $pidเพื่อรับข้อมูลกระบวนการ

คุณสามารถดูบทความนี้ได้ที่ IBM Systems Magazine สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้


นี่ไม่ใช่เหตุการณ์ที่ดำเนินการอย่างถูกต้องบน AIX ของฉัน
Kiwy

1

วิธีหนึ่งที่เร็วที่สุดในการค้นหาพอร์ตการล็อกแอปพลิเคชันคือการใช้lsofหรือlsof64 :

lsof64 -nP | grep $PortNumber

หรือ

lsof -nP | grep $PortNumber

ด้านบนจะส่งคืนการล็อก ID กระบวนการ / โดยใช้หมายเลขพอร์ตที่กำหนด เมื่อคุณมีมันแล้วเรียกใช้ด้านล่างเพื่อค้นหาการใช้งานแอปพลิเคชัน / กระบวนการ

proctree $pid

0

ฉันไม่คุ้นเคยกับ AIX แต่คุณได้ลองwหรือeจัดรูปแบบอาร์กิวเมนต์แล้วpsหรือยัง?

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

คุณสามารถตรวจสอบคู่มือออนไลน์ AIX psสนับสนุนการตั้งค่าสถานะ BSD แบบดั้งเดิม แต่การตั้งค่าสถานะที่คุณระบุจะช่วยได้อย่างไร
Gilles 'หยุดชั่วร้าย'

หืมดูเหมือนว่าพวกเขาทำสิ่งต่าง ๆ บน AIX แม้ว่าเอกสารที่คุณอ้างถึงจะมีตัวเลือก l ซึ่งพิมพ์ "USER, PID,% CPU,% MEM, SZ, RSS, TTY, STAT, เวลา, เวลาและเขตข้อมูลคำสั่ง"
frogstarr78

0
netstat -ape | grep $PortNumber

คุณช่วยอธิบายว่าคำสั่งกำลังทำอะไรอยู่? การวางโค้ดโดยไม่มีเหตุผลไม่ได้มีประโยชน์มาก
n0pe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.