障害調査に役立つ基礎的なLinuxコマンド集
LinuxサーバでのWebアプリケーションの障害調査時に、自分が特によく使っている基礎的なコマンドをまとめてみました。統計などを取ったわけではないですが、今回挙げる基礎的なコマンドで多くの調査を済ませてしまっている気がします。
実際には、パイプで sort
や wc
コマンドなどと組み合わせたりすることで調査の高速化をしている部分もありますが、実際には基礎的なコマンドだけで障害の原因が判明することも多くあります。
w
マシンの起動時間や、ログインしているユーザなどを調べるコマンドです。
特に、マシンの再起動が障害の原因になることは多々あるので、マシンの起動時間は調査に重要な情報となります。
また、他の人がログインしている場合、調査に影響を与える場合があるため注意します。
これらの情報が一文字で取得できるのですから、まず打っておいて損はありません。
df
ディスク使用量を確認するコマンドです。ディスクの使用率を監視していない場合、障害発生の原因がディスクの枯渇というケースも多いので、このコマンドも最初に打ってみるコマンドの1つです。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 30G 10G 20G 34% /
devtmpfs 490M 56K 490M 1% /dev
tmpfs 499M 0 499M 0% /dev/shm
du
ディスク容量が枯渇している場合、どのディレクトリが容量を取っているかを調べる際に使うことが多いでしょうか。
例) 現在ディレクトリ直下のディスク容量を調べたい場合:
$ du -sh ./*
22M ./20151120
280K ./hogehoge.jpg
308M ./hogehoge.tar.gz
8.0K ./bin
28K ./blog
パイプで sort -rn
をつなげると容量ごとにソート可能です。
$ du -sh ./* | sort -rn
620M ./hogehoge.dump
508M ./shimojo
496K ./maeda
355M ./dump.sql
308M ./hoge.dump.tar.gz
隠しファイルも対象にしたい場合、以下のようにします。
$ du -scmh ./* ./.[^.]* | sort -rn
620M ./hogehoge.dump
508M ./shimojo
496K ./maeda
355M ./dump.sql
308M ./hoge.dump.tar.gz
136K ./.ssh
ps
プロセスを表示するコマンドです。
個人的には ps aux
オプションで打つことが多いです。
例えばWebアプリケーションからレスポンスがないようなとき、必要なプロセス (Webサーバやアプリケーションサーバ) が動いているのかといったところは、まず確認したいポイントです。
top
リアルタイムに現在のシステム負荷状況を見る際に使います。
CPU負荷については基本的にstの値は低いはずですが、最近あった事例として、AWSのt系インスタンスでstの値が高くなっていて、実際にはCPUクレジットを使い切ってしまってCPUの使用が制限されてしまっていたというケースが最近ありました。
grep
ログファイルの解析をするために多用します。
find
ファイルを見つけるためにたまに使います。
echo $?
前回実行したコマンドの復帰値を表示するコマンドです。何かしらのコマンドをデバッグのため再度実行したあとに、その復帰値を確認する際に使うことがあります。
以上、基礎的コマンドをご紹介しました。今回挙げたコマンドを使いこなすだけでもかなりの調査が可能だと思いますので、これからトラブルシューティングに携わるという方に参考になれば幸いです。