bekkou68 の日記

Gogengo! や IT 技術など。

サーバをメンテする時に便利な Linux コマンド 3つ

はじめに

サーバを運用したり環境を構築したりしていて「あれ。あのプロセスで吐いてるログどこだっけ・・」など困るときがあります。
そんなときに頼りになるかもしれないコマンドを 3つご紹介します。
@madeth 師匠に教えていただきました。

1. proc でプロセスが使っているファイルを見る

困ったこと

プロセスの吐くログのパスがどうしても分からない・・。

解決法 (編集 2014/09/10)

知りたいプロセスの ID を調べます。

$ ps aux | grep unicorn
deploy    3335  xxx  xxx xxx xxx X       XX   15:14   0:07 unicorn master -c /var/www/myproject/unicorn/staging.rb -E staging -D

プロセスID (この場合は 3335) をもとに root 権限でファイルディスクリプタをのぞきます。

$ sudo ls -l /proc/3335/fd
-wx------ 1 deploy deploy 64 Jun 26 16:56 X -> /hard/to/find/log/unicorn.log
-wx------ 1 deploy deploy 64 Jun 26 16:56 Y -> /hard/to/find/log/unicorn_err.log
...

おお。こんなところにログがありました!

他にもソケット・パイプ・実行ファイルといった情報を見られるようです。

2. mlocate でファイルを検索する (2014年06月30日更新)

困ったこと

あの設定ファイルどこ置いたっけ・・。

解決法

mlocate を使います。インデックスを元に高速でファイルを検索するツールです。別途インストールが必要です。

$ sudo yum -y install mlocate

# インデックスを作成。ファイル構成が変わったら都度実行するのを忘れずに!
# 負荷がかかる操作なので注意
$ sudo updatedb 

検索したいファイル名でコマンドを実行してみましょう。

$ locate nginx.conf
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default
/this/path/is/abnormal/nginx.conf

おお。いろいろな場所から見つけることができました。

パスで絞り込むこともできます。

$ locate "/nginx/nginx.conf"
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default

3. プロセスに関する情報をいろいろ知る

困ったこと

プロセスの情報をスマートに知りたい。

解決法

top コマンドの便利な使い方をご紹介します。

  • ユーザで絞り込みたい: u を打ってユーザ名を入力すると絞り込める
  • コマンドラインを見たい: c を打つ
  • CPUを喰ってる順に並べ替えたい: Shift+P を打つ
  • メモリを喰ってる順に並べ替えたい: Shift+M を打つ
  • コア数を確認したい: 1 を打つ

他のオプションが気になる方はこちらをご覧ください。

top には htop といった派生ツールが色々あるようです。

おわりに

知りたいことをスマートに知れるように練度を高めたいなあ (感想)。

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy