Solaris中等效的lsof -i

问题描述 投票:3回答:3

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

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

谢谢!

linux unix command solaris equivalent
3个回答
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的警告部分所述,不建议在负载较大的生产系统上运行此命令,因为该系统运行的时间敏感进程可能会发生死锁或崩溃。


3
投票

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

netstat

(注意:在编写v11.2时为beta版本,但内容/新功能已完全披露)


1
投票

您可以尝试使用pfiles,fuser。您可以在solaris上安装lsof。

nice blog from Oracle on the topic

© www.soinside.com 2019 - 2024. All rights reserved.