我有一个快速的问题。我想知道Solaris系统中的losf -i
等效命令是什么。
我只想显示带网络连接的文件。
谢谢!
答案 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/