Solaris中的等效lsof -i

时间:2013-12-18 23:09:44

标签: linux unix command solaris equivalent

我有一个快速的问题。我想知道Solaris系统中的losf -i等效命令是什么。

我只想显示带网络连接的文件。

谢谢!

3 个答案:

答案 0 :(得分:4)

这是一个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的警告部分所述,建议不要在负载时间过敏的高负载生产系统上运行此命令,因为可能会发生死锁或崩溃。

答案 1 :(得分:2)

从Solaris 11.2开始,此类信息现在可直接在netstat命令(-u选项)中使用,因此您不必为此目的使用pfiles hack或使用lsof工具。我个人总是想知道这些信息不能成为netstat输出的一部分,所以很高兴看到最终会出现这种情况。

nice blog from Oracle on the topic

(警告:在编写v11.2时处于测试版但已完全披露内容/新功能)

答案 2 :(得分:1)

你可以试试pfiles,fuser。你可以在solaris上安装lsof。

http://andriigrytsenko.net/2010/08/lsof-installation-on-solaris-10/

相关问题