Solaris: インストールされているすべてのファイバー カードの物理デバイス パスを見つけるためのスクリプト

Solaris: インストールされているすべてのファイバー カードの物理デバイス パスを見つけるためのスクリプト

私はいくつかのシステムを持っています (残念ながら、タイプ、世代、アーキテクチャはかなり異なります)。

これらのさまざまなシステム上のファイバー カードのリストを作成する必要があります。

私は prtconf -v を使用し、prtdiag -v と相関させ、必要に応じて luxadm または fcinfo を使用してこの情報を検索することができますが、多数のシステムが存在するため、2 つの点が疑問です。

1. この情報を検索するスクリプトをすでに作成している人がいます。

2. 上記のコマンドから必要な情報を取得できる、非常に便利なワンライナーを知っている人がいれば、そのラッパーをスクリプト化するだけで、4000 個のボックスにログインするのに 1 週​​間を費やす必要がなくなります。

繰り返しますが、私はそれらを見つける方法を学ぼうとしているわけではありません (ただし、UNIX ではいつものように TMTOWTDI なので、皆さんの意見を歓迎します)。むしろ、私の作業をいくらか軽減してくれるスクリプトを探しています。

答え1

これがあなたの意図したものかどうかはわかりません:

ただし、接続されているすべての HBA を確認する方法は次のとおりです。

i を ls /dev/rdsk/*s2 で実行します。 luxadm display $i 2>&1|grep WWN|awk '{print $5}'; done |sort|uniq |xargs fcinfo hba-port -l |egrep 'Model'

または、HBA カードに関するシステムのすべての部品番号を取得するには、次のようにします。

fcinfo hba-port|egrep 'モデル'|uniq

これで必要なことはできると思います。ターゲット システムに接続するためにこれをラッパーするだけで、サーバーにある HBA の完全なリストが取得されます。

HTH

答え2

次の 2 つのいずれかが当てはまります: 1) サーバーが多数存在する 2) サーバーが多数存在しない (可能性を見落としていたら教えてください)。

サーバーの数がそれほど多くない場合は、おそらくハードウェアインベントリを手動で実行できるため、このような質問をすることはないはずです。大規模な導入がある場合は、Puppetのようなものを導入することを検討する必要があります。基本的に、ファイルをデプロイするそしてリモートコマンドを実行する一括管理。これを理解すれば、ほとんどの管理タスクはたくさんもっとシンプルに。

各ノードから電子メールで送信してもらうだけで時間を節約できprtdiag、好きなときにコピー/貼り付けでインベントリをコンパイルできます。

明らかに、この 1 つのタスクのために Puppet を設定するのはやりすぎかもしれませんが、今後は間違いなく多くの時間を節約し、必要なことを実行する 1 行のコードを探す手間が省けると思います。これらのタスクが発生したら、スクリプトを /tmp にデプロイして実行するだけです。

答え3

Solaris のバージョンは何ですか? 10 以降の場合は、fmtopoそのオプションのいずれかが必要な機能を果たすかどうかを調べてみてください。( /usr/lib/fm/fmd/fmtopo)

ただし、私の知る限りでは WWN を列挙しないため、必要なレベルの詳細が提供されるかどうかはわかりません。

答え4

ついに私は、自分自身の疑問に対する完璧な答えを見つけました。

現在文書化されていない dladm show-phys のオプション「-L」は、まさに私が必要としていたことを実行します。

例:

root@server1:/tmp# dladm show-phys -L

リンクデバイスLOC net0 igb0 /SYS/MB

ネット1 igb1 /SYS/MB

ネット2 ixgbe0 PCI-EM2

ネット3 ixgbe1 PCI-EM2

ネット4 ixgbe2 PCI-EM10

ネット5 ixgbe3 PCI-EM10

net21 ibp2 PCI-EM1/ポート1

net22 ibp3 PCI-EM1/ポート2

net23 ibp4 PCI-EM9/ポート1

net24 ibp5 PCI-EM9/ポート2

ルート@サーバー1:/tmp#

関連情報