[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
何年かぶりに新しい記事をここに投稿しますが。
仕事と育児でブログ書くヒマがなくなり、
嵐のような日々を過ごしてきました。
今日、
とあるシステム更新の対応の最終日で、
ちょっと暇になったので、
皆さんの役に立つような立たないようなTIPSを御紹介しておきます。
Solaris で
どのプロセスがどのファイルを掴んでいるか、
TCPポートを開けているか等確認するのに
lsof コマンドを使ってました。
今回のシステム更新で、
複数の Solaris サーバを一筺体に集約して諸々を節約したい
というエンドユーザの希望を叶えるべく
業務サーバをことごとくコンテナ化しました。
ところが、コンテナとして動くサーバ(非大域ゾーン)では sof コマンドを使用できなくなりました。
(非大域ゾーンの制約のため)。
ので、
代替のコマンドを探す必要に迫られたのですが、
なんと、
標準で載ってました。
proc ツールです。
(man -s 1 proc で詳細をご覧いただけます)
●特定のプロセスがどんなファイルを開いているかを調べる
# pfiles PID
さらに共有ライブラリの使用状況を調べる場合
# pldd PID
lsofの場合、 lsof -p PID
●あるファイルを開いているプロセスを調べる
(1) pfilesコマンドで全プロセスの結果を中間ファイルに出力
# pfiles `/bin/ls /proc` > 中間ファイル
(2) 中間ファイルをファイル名で検索
# grep ”ファイル名” 中間ファイル
lsofの場合、 lsof -- ファイルのフルパス
●どのポートをどのプロセスが開けているかを調べる
(1) pfilesコマンドで全プロセスの結果を中間ファイルに出力
# pfiles `/bin/ls /proc` > 中間ファイル
(2) 中間ファイルを開き、単語 port で検索
lsof の場合、 lsof -i4tcp
なお、
大域ゾーンでは lsof コマンドを使用でき、
全非大域ゾーンのプロセスの状況を調べることが出来ます。
ので、
大域ゾーンで lsof コマンドを使っちゃうんでしょうね、結局。
(何かと便利だし)