Trong AIX, làm thế nào tôi có thể có được đường dẫn đầy đủ của một chương trình được liên kết với một cổng?


14

Trong Linux tôi có thể sử dụng netstat -tulpnwps, như vậy:

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

Làm cách nào tôi có thể nhận được đường dẫn đầy đủ của chương trình được liên kết với một cổng khi sử dụng kshtrong AIX 6?

Câu trả lời:


10

Theo khuyến nghị của IBM : sử dụng lsof -i -nvà tìm kiếm cổng XY. Nếu bạn muốn đầu ra có thể phân tích cú pháp từ lsof, hãy sử dụng-F cờ và phân tích đầu ra với awk.

Bạn có thể nhận được các tệp nhị phân được biên dịch trước cho AIX V5 . Tôi không biết nếu có các tệp nhị phân được biên dịch trước cho V6; nếu không có, hãy lấy nguồn và biên dịch nó.


lsof không phải lúc nào cũng có sẵn trên AIX: P
LanceBaynes


không phải lúc nào cũng "lsof" trên máy ... nhưng tôi có thể coi đây là một câu trả lời hay (những câu khác cũng "tốt"!)
LanceBaynes

4

Hãy thử sử dụng netstatvới rmsock.

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

Đối với netstat, -Ahiển thị địa chỉ của bất kỳ khối điều khiển giao thức nào được liên kết với các ổ cắm, -atùy chọn hiển thị trạng thái của tất cả các ổ cắm bao gồm cả các quy trình của máy chủ và-n tùy chọn cung cấp đầu ra ở dạng số, vì vậy bạn không lãng phí thời gian để cố gắng giải quyết địa chỉ .

rmsock, bằng cách sử dụng địa chỉ được cung cấp trong đầu ra cột1 netstatvà sử dụng tcpcbcơ sở dữ liệu, sẽ trả về thông tin về quá trình giữ ổ cắm đó, bao gồm cả pid và tên.

Sau đó bạn có thể sử dụng ps -ef | grep $pidđể có được thông tin quá trình.

Bạn có thể xem bài viết này tại Tạp chí Hệ thống IBM để biết thêm thông tin về điều này.


đây không phải là sự kiện thực thi chính xác trên AIX của tôi
Kiwy

1

Một trong những cách nhanh nhất để tìm cổng khóa ứng dụng là sử dụng lsof hoặc lsof64 :

lsof64 -nP | grep $PortNumber

hoặc là

lsof -nP | grep $PortNumber

Ở trên sẽ trả về quá trình khóa ID / sử dụng số cổng đã cho. Khi bạn đã có nó rồi chạy bên dưới để tìm ứng dụng / tiến trình đang chạy

proctree $pid

0

Tôi không quen thuộc với AIX, nhưng bạn đã thử whoặc eđịnh dạng các đối số pschưa?

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

Bạn có thể kiểm tra hướng dẫn trực tuyến. AIX pskhông hỗ trợ các cờ BSD truyền thống, nhưng các cờ bạn chỉ định giúp như thế nào?
Gilles 'SO- ngừng trở nên xấu xa'

Hừm, có vẻ như họ làm những việc khác nhau trên AIX. Mặc dù tài liệu mà bạn tham chiếu bao gồm tùy chọn l in "các trường USER, PID,% CPU,% MEM, SZ, RSS, TTY, STAT, STIME, TIME, và"
ếchstarr78

0
netstat -ape | grep $PortNumber

Bạn có thể giải thích những gì lệnh đang làm? Dán mã mà không cần biện minh là không hữu ích.
n0pe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.