linux - Solaris 中等效的 lsof -i

标签 linux unix command solaris equivalent

我有一个快速的问题。我想知道 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 的警告部分所述,不建议在负载很重的生产系统上运行此命令,因为可能会发生死锁或崩溃。

注意 #2:之前的警告不适用于 Solaris (Oracle Solaris 11.4) 的最新更新,因为 pfiles 不再暂停受监视的进程。它现在只使用临时/proc 伪文件。

关于linux - Solaris 中等效的 lsof -i,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20670400/

相关文章:

linux - 如何从带有参数的变量执行 Bash 命令

linux - 我们如何在 for 循环中递增字符串变量

c - 为什么是 'binary access meaningless on UNIX systems' ?

c++ - 如何读取/重定向 dos 命令的输出到 C/C++ 中的程序变量?

javascript - 奇怪的 heroku 命令错误

C Linux 从内存中读取/写入字(段、偏移量)

python - 无法在 Linux Mint 18.2 Cinnamon 64 位的 Anaconda Navigator 中打开 Spyder

unix - 如何向 telnet 发送命令并使 session 保持打开状态

Bash:如何从数字中提取数字

c# - 将命令绑定(bind)到模板化用户控件