2013-12-18 42 views
2

我有一個快速問題。我想知道Solaris系統中的losf -i等效命令是什麼。Solaris中的等價lsof -i

我只想顯示網絡連接的文件。

謝謝!

回答

3

這裏是一個shell腳本,列出其在Solaris上打開的TCP或UDP端口的所有進程,你可以通過它作爲參數傳遞它限制在一個給定的端口號:

pfiles /proc/* 2>/dev/null | nawk -v port=$1 ' 
    /^[0-9]/ { cmd=$2; type="unknown"; continue } 
    $1 == "SOCK_STREAM" { type="tcp" } 
    $1 == "SOCK_DGRAM" { type="udp" } 
    $2 ~ "AF_INET" { if((port!="")&&($5!=port)) continue; 
         if(cmd!="") { printf("%s\n",cmd); cmd="" } 
         printf(" %s:%s/%s\n",$3,$5,type); }' 

注意:如pfiles manual page的警告部分中所述,建議不要在負載較重的生產系統上運行此命令,因爲時間敏感的進程可能會發生死鎖或崩潰。

+0

我能做到這一點的只有一條線路?謝謝 – Alberto

+0

當然,使它成爲一個shell函數或一個shell腳本,你就可以用一個命令行來調用它。 – jlliagre

+0

我很抱歉,但我不知道該怎麼做。 :S – Alberto

2

從Solaris 11.2此類信息的現在可以直接在netstat命令(-u選項),所以你不必使用pfiles黑客爲目的或使用lsof工具。就我個人而言,我一直想知道這些信息不能成爲netstat輸出的一部分,所以很高興看到這種情況終於會發生。

有一個nice blog from Oracle on the topic

(警告:在寫V11.2的時間是在測試階段,但作爲內容/新功能完全披露)