Equivalent lsof -i in Solaris

2019-07-04 18:56发布

I have a fast question. I want to know what is the losf -i equivalent command in a Solaris system.

I only want to show the files with network connection.

Thank you!!

3条回答
再贱就再见
2楼-- · 2019-07-04 19:41

As of Solaris 11.2 this type of information is now available directly in the netstat command (-u option) so you don't have to use the pfiles hack for the purpose or use the lsof tool. Personally I've always wondered by this information could not be part of the netstat output so glad to see that'll finally be the case.

There's a nice blog from Oracle on the topic.

(caveat: at the time of writing v11.2 is in beta but fully disclosed as to the contents / new features)

查看更多
干净又极端
3楼-- · 2019-07-04 19:43

you can try pfiles,fuser. you can install lsof on solaris.

http://andriigrytsenko.net/2010/08/lsof-installation-on-solaris-10/

查看更多
何必那么认真
4楼-- · 2019-07-04 19:53

Here is a shell script that list all processes having open TCP or UDP ports on Solaris, you can limit it to a given port number by passing it as an argument:

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); }'

Note: As documented in the warning section of the pfiles manual page, it is not recommended to run this command on a heavily loaded production system with a time sensitive process running as deadlocks or crashes might happen.

查看更多
登录 后发表回答