「Linux」でのトラブルシューティングで知っておくべきコマンド5選
「Linux」の悪口を言いたい人にとっては非常に残念なことだが、このOSは実際にとても使いやすい。現代的なGUIデスクトップ環境とアプリケーションのおかげで、誰でもすぐに使いこなすことが可能だ。 しかし、まれにトラブルが発生することもある。そういうときのために、便利なコマンドをいくつか知っておくといいかもしれない。問題は、Linuxには利用可能なコマンドが非常に多いため、どのコマンドが最適な選択肢なのかを判断するのが難しいことだ。 もちろん、システム情報を表示するコマンド(top、free、iostat、htop、vmstat、iftopなど)を学んでもいいが、それらのツールでできることは限られている。それよりも価値があるのは、問題が発生した場合に備えて、本当に役に立つコマンドに習得しておくことだ。 前置きはこの辺にして、それらのコマンドの説明に移ろう。 1. dmesg Linuxを使い始めた頃、dmesgは筆者の親友だった。基本的に、dmesgは起動時にカーネルが出力したすべてのメッセージを確認したいときに使用される。言い換えると、トラブルシューティングできるかもしれない問題の手がかりがここで見つかる可能性もある。 以前のdmesgと異なり、現在では、以下のようにsudo権限でコマンドを実行する必要がある。 sudo dmesg これにより、スクロール可能な出力がかなり大量に表示されるので、探している情報を見つけるのは少し難しい。また、表示された情報の多くはおそらく意味不明に思えるはずだ。幸い、エラーは赤色で表示されるため、素早くスクロールして、問題の原因かもしれない情報を見つけることができる。 この作業をさらに簡単にする方法もある。例えば、エラーが発生しているときに、dmesgを実行して、そのエラーが記録されているかどうかをリアルタイムで確認したいとしよう。それを行うには、以下のコマンドを実行する。 dmesg -w これにより、dmesgの出力がリアルタイムで表示される。つまり、エラーが発生すると、その情報がターミナルウィンドウに表示されるので、そこからトラブルシューティングを進めることが可能だ。 2. tail 出力の追跡ということなら、tailコマンドを使用すれば、あらゆるログファイルに書き込まれた出力を追跡することができる。例えば、Samba共有に問題があり、何が起こっているのかをリアルタイムで確認したいとしよう。最初にすべきことは、どのログファイルを調べればいいのかを特定することだ。そうした状況では、以下のコマンドを実行するといい。 ls /var/log/samba そのフォルダーには、(Sambaサーバーと、共有に接続されているすべてのマシンに関する)多数のログファイルがある。例えば、Sambaのデーモンログの内容を確認したいとしよう。その場合、筆者なら以下のコマンドを実行する。 tail -f /var/log/samba/log.smbd エラーが発生すると、リアルタイムでターミナルに表示される。下の画像を見ると分かるように、smb.confファイルにshare modesという不明なパラメーターがある。そのファイルを開いてパラメーターを削除し、Sambaを再起動すると、エラーは発生しなくなる。 tailコマンドを終了するには、「Ctrl」+「c」キーボードショートカットを実行する必要があることに注意してほしい。