ps&lsofコマンドで実行中のソフトウェアのログファイルを探す

サーバ

説明

実行中のソフトウェアのログファイルを見たいときに、設定ファイルから場所を探すことが多いと思いますが、それでも場所がわからないときに以下の手順で探すと良いと思います。

プロセスからログファイルの場所を探す

例として、今回はdockerコンテナのログを探したいと思います。
ちなみに通常の場合、dokcerのコンテナのログは以下のように、「docker logs -f コンテナ名(コンテナID)」で中身をみることができます。

[root@hoge ~]# docker ps
CONTAINER ID  ・・ NAMES
9b8b5de95cde  ・・ https_portal
e1e482670e3f  ・・ wp_web
5b50bdcd9c24  ・・ wp_smtp
41ce797ea44b  ・・ wp_db

[root@blog-web01 ~]# docker logs -f wp_web

次は、本題のプロセスからログを探したいと思います。

①. psコマンドでPID(プロセスID)を確認します。
Linuxコマンドの「ps aux |grep 検索文字(サービス名)確認できます。

[root@hoge ~]# ps aux |grep docker
root     16046  0.0  ・・ 2020 154:36 /usr/bin/dockerd -H fd:// --contain・・・省略
root     16192  0.0  ・・ 2020   0:14 /usr/bin/docker-proxy -proto tcp -host-・・省略
・
・

PIDの16046、16192などが確認できました。

②. lsofコマンドでログファイルのリストを取得
Linuxコマンドの「lsof -p プロセスID |grep 検索文字(ログファイル名)」で取得できます。

[root@hoge ~]# lsof -p 16046 |grep log
dockerd 16046 ・・/var/lib/docker/containers/41ce797ea44b6b・・・f2a8a-json.log
dockerd 16046 ・・/var/lib/docker/containers/5b50bdcd9c24・・・5636-json.log
dockerd 16046 ・・/var/lib/docker/containers/e1e482670e3f・・・ee3434-json.log
dockerd 16046 ・・/var/lib/docker/containers/9b8b5de95cde・・・fea-json.log

今回は、dockerコンテナが4つ稼働しているため、ログファイル(json.log)4つ出てきました。
「/var/lib/docker/containers/コンテナID-json.log」で各コンテナがどのログファイルなのか見分けることができます。

以上です。

コメント

タイトルとURLをコピーしました