2013-12-18 2 views
2

У меня быстрый вопрос. Я хочу знать, что такое эквивалентная команда losf -i в системе Solaris.Эквивалент lsof -i в Solaris

Я только хочу показать файлы с сетевым подключением.

спасибо !!

ответ

3

Вот скрипт, список всех процессов, имеющих открытые TCP или UDP порты на Solaris, вы можете ограничить его к заданному номеру порта, передав его в качестве аргумента:

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, не рекомендуется запускать эту команду на сильно загруженной производственной системе, когда процесс, зависящий от времени, работает в качестве взаимоблокировок или могут произойти сбои.

+0

Могу ли я сделать это только в одной строке ?? Спасибо – Alberto

+0

Конечно, сделайте это оболочкой или скриптом оболочки, и вы сможете вызвать его с помощью одной командной строки. – jlliagre

+0

Извините, но я не знаю, как это сделать. : S – Alberto

2

На Solaris 11.2 этого типа информации теперь доступна непосредственно в netstat команды (-u вариант), так что вы не должны использовать pfiles хак для этой цели или использовать инструмент lsof. Лично я всегда удивлялся этой информации, не мог быть частью вывода netstat, так рада видеть, что это, в конечном счете, будет.

Существует nice blog from Oracle on the topic.

(нюанс: на момент написания v11.2 в бета-версии, но полностью раскрывается, как к содержанию/новых функций)

Смежные вопросы