我有一个快速的问题。我想知道 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/