1. ホーム
  2. linux

[解決済み] Solaris では lsof -i が相当します。

2022-02-19 10:30:14

質問

早速ですが、質問があります。私は losf -i は、Solarisシステムで同等のコマンドです。

ネットワークに接続しているファイルだけを表示したいのですが。

ありがとうございました!

解決方法は?

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 マニュアルページ このコマンドは、デッドロックやクラッシュが発生する可能性があるため、時間的制約のあるプロセスを実行する負荷の高い実稼働システムで実行することはお勧めしません。

注2: 前述の警告は、Solarisの最後のアップデート(Oracle Solaris 11.4)には適用されません。 pfiles は、監視対象プロセスをサスペンドしなくなりました。現在では、アドホックな/proc疑似ファイルを使用するだけです。