我有一个很快的问题。我想知道什么是Solaris系统中的losf -i
等效命令。
我只想显示具有网络连接的文件。
谢谢!
这里是一个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的警告部分所述,不建议在负载较大的生产系统上运行此命令,因为该系统运行的时间敏感进程可能会发生死锁或崩溃。
从Solaris 11.2开始,这种类型的信息现在可以直接在pfiles
命令(netstat选项)中使用,因此您不必为此目的而使用-u
hack或使用pfiles
工具。就我个人而言,我一直想知道为什么此信息不能成为lsof
输出的一部分,因此很高兴看到情况最终会如此。
有netstat
。
(注意:在编写v11.2时为beta版本,但内容/新功能已完全披露)
您可以尝试使用pfiles,fuser。您可以在solaris上安装lsof。