
Mac OS Xのコマンドラインからシステムとカーネルのログを追跡する
Macで発生する可能性のある、より複雑な問題のトラブルシューティングを行う場合は、コンソールアプリに含まれるシステムログとカーネルログを確認するのが効果的です。また、ターミナルからも同じOS Xログにアクセスできます。
OS X アプリがあれば GUI でネイティブにシステム ログを読めるのに、わざわざターミナルからシステム ログを読む必要があるでしょうか。理由はいろいろあります。たとえば、ssh を使用してリモートでログを確認している場合や、ターミナルの方が好みである場合、あるいは状況が悪化している場合などです。後者の状況では、残念ながら、リモートでトラブルシューティングを行っている、シングル ユーザー モードになっている、あるいはログ ファイルが大きくなりすぎて Console.app を読み込もうとするとクラッシュしてしまう (これは私の場合、何度か経験しています) などの理由で、コンソールにアクセスできないことがあります。確かに、OS X コンソール ログを直接開けないほど問題が深刻な場合もあります。しかし、このような状況になっても心配はいりません。Mac のコマンド ラインを使用すれば、Mac OS X のシステム ログを追跡して監視することができます。
このような状況の場合、または何らかの理由でコマンド ラインからコンソールのシステム ログを追跡する必要がある場合は、次のように入力するだけです。
tail -f /var/log/system.log
カーネル ログでも同じことができます。これは、ハードウェアや接続の問題をトラブルシューティングする場合に最適です。
tail -f /var/log/kernel.log
tail -f コマンドを使用すると、指定したファイルを読み込み、ライブストリームで画面に出力できます。/var/log 内には他にも多くのログファイルがありますが、トラブルシューティングには上記の2つが最も役立ちます。
次のように、ログ ファイルに対して less コマンドを使用することもできます。
less /var/log/kernel.log
less でログ ファイルを開いたら、「F」キーを押して、ログ ファイルがライブ更新されるたびに継続的に更新します。これは、常に更新されるログ ファイルを簡単に表示できるという点で、tail -f に似ています。
syslogコマンドも選択肢の一つですが、grep、awk、その他のツールで制御されていないsyslogを実行している場合は、かなりの量のログが大量に出力されます。以下のコマンドで実際に確認してみてください。
syslog
少し大変に感じるかもしれませんが、さらにパイプ処理を行えば、はるかに管理しやすくなります。
syslog |more
syslog コマンドには優れた機能といくつかの利点がありますが、--help フラグを使用すると、ログ ファイルの内容をエクスポートする方法、特定のログを読み取る方法、ログをプロセスに一致させる方法など、さらに多くの情報が得られます。
Mac OS Xデスクトップでシステムログのアクティビティを直接確認したい場合は、これらのコマンドをGeekToolと組み合わせて使用することもできます。あるいは、Macにターミナルウィンドウを表示し、透過的に表示してマルチタスク表示を容易にすることもできます。トラブルシューティング、管理、開発作業がスムーズに進むでしょう。