このWikiHowでは、一般的なUnixオペレーティングシステムで最も重要なログの場所を教えます。LinuxのすべてのバージョンとFreeBSDのデフォルトのログの場所は/var/logですが、実際のログの名前はシステムによって異なります。Solarisを使用している場合、ログは/var/admにあります。ほとんどのログはフラットなテキストファイルで、cat、more、tail、またはテキストエディタで開いて見ることができます。しかし、dmesg(カーネルのリングバッファ情報を含む)やlastlog(ユーザーのログイン情報を示す)のようなログは、特定のコマンドを実行することで見ることができます。
知っておくべきこと
- シェルプロンプトを開き、/var/logに移動してログを見つけます。
- 認証、スタートアップメッセージ、バックグラウンドサービスなどの一般的なログについて学んでください。
- ログの詳細情報を得るために使えるコマンドがいくつかあります。例えば、「cat」コマンドを使ってログの内容全体を見ることができます。
ログの検索
-
Ctrl+Alt+Tを押す。シェルのプロンプトが開きます。
-
cd /var/log と入力し、↵ Enterキーを押します。Linuxのログ・ファイルの場所である/var/logに移動します。
- Solarisを使用している場合、ログは/var/admにあります。
-
ls -a と入力して ↵ Enter キーを押します。ディレクトリ内の全ファイルのリストが表示されます。
-
一般的なログを学ぶ。ログは、実行しているLinuxのバージョンや使用しているソフトウェアやサービスなど、さまざまな要因によって異なります。以下は、最も一般的なログファイルの概要です(Solarisを使用している場合は、/var/logを/var/admに置き換えるだけです):
-
/var/log/auth.log:/var/log/auth.log: Debian/Ubuntu LinuxとFreeBSDの認証ログ(成功したものも失敗したものも)。
- Solarisユーザーは/var/adm/authlogを使う。
- /var/log/boot.log:起動メッセージとブート情報。
-
/var/log/cron:ほとんどのUnixバージョンのcron関連のすべてのメッセージ。
- Solarisを使用している場合、cronログは/var/cron/logにあります。
- /var/log/daemon.log:バックグラウンド・サービスを実行しています。
- /var/log/dmesg:デバイス・ドライバー・メッセージ。このログを見るには、dmesgコマンドを使う必要がある。
- /var/log/faillog:失敗したログインのみ。
- /var/log/httpdまたは/var/log/apache2:Apacheウェブサーバーのログ。
- /var/log/maillogまたはvar/log/mail.log:メールサーバー情報。
- /var/log/lastlog:全ユーザーの最終ログインを表示。このログを見るには、lastlogコマンドを使う必要がある。
- /var/log/messages:SolarisとFreeBSD、およびLinuxのFedora、RedHat、CentOSの一般的なシステムメッセージ:
- /var/log/secure:RedHat/CentOS用の認証ログ(成功した試行と失敗した試行)。
- /var/log/syslog:Ubuntu Linux、Linux Mint、Debian Linuxベースのシステムの一般的なシステムメッセージ。 Solarisを使っている場合は、ここにメール関連のメッセージがある。
- /var/log/utmp:各ユーザーの現在のログイン状態。
- /var/log/wtmp:ユーザーのログインとログアウトの時間。
-
/var/log/auth.log:/var/log/auth.log: Debian/Ubuntu LinuxとFreeBSDの認証ログ(成功したものも失敗したものも)。
ログの表示
-
ログのすべての内容を見るには、catコマンドを使います。ログがフラットなテキストファイルである限り、cat lognameを実行してログ全体を見ることができます。
- まだroot権限を持っていない場合は、各コマンドの前にsudoを使ってください。
-
ログの内容を画面ごとに見るには、moreを使う。これらのログの多くはサイズが大きいので、catを使うのはイライラするかもしれない。画面ごとにログを見たい場合は、more lognameを使うと画面ごとにログを見ることができる。
- Enterキーで1行ずつスクロールするか、スペースキーで1画面ずつスクロールする。
- 戻るにはbを、プロンプトに戻るにはqを押す。
-
ログをリアルタイムで表示するには、tail -fを使う。これは、新しい項目が書き込まれると常に更新されるログのライブバージョンを表示します。例えば、Apacheに問題がある場合、tail -f /var/log/httpdを実行し、トラブルシューティングの間、ターミナルウィンドウで開いておくと役に立つかもしれない。
- ログの最後を見たいだけで、リアルタイムで更新されているかどうかは気にしない場合は、tail -20 /var/log/httpdを実行して、最後の20行を表示する。20 "は、下から何行目であってもかまいません。
- また、tailで表示された内容をgrepにパイプすることで、解析することもできる。例えば、tail -f /var/log/auth.log | grep 'Invalid user'とすると、すべての無効なユーザーを表示します。
- コマンドの「パイプアウト」とは、出力を別のコマンドにリダイレクトすることです。基本的に、2つ以上のコマンドを同時に使うことができる。
-
ログを開くにはviを使う。viやvimなどのテキストエディタを使えば、ほとんどのログを開いて見ることができる。そのためには、vi /var/log/auth.log(または希望のログ名)を使うだけです。その後、必要に応じてログを自由にナビゲートしたり、エディタの検索ツールを使ったりすることができる。viやvimでは、コマンド・モードでスラッシュを使って文字列を検索することができる。
- 例えば、「/smtp」と入力してEnterを押すと、ファイル内の「smtp」の次のインスタンスが検索される。検索文字列の次のインスタンスに移動するにはnを、前に戻るにはN(大文字)を押す。
-
カーネルからのメッセージを見るにはdmesgを使う。var/log/dmesgを見るには、このコマンドを使う必要がある。
- ログを画面ごとに移動するには、dmesg | moreを実行する。
- 特定のエントリーを検索するには、dmesgとgrepを併用する。たとえば、ハードディスクのエントリだけを表示するには、dmesg | grep -i sdaを実行する。
- -iはgrepに大文字小文字を無視させる。
- ログの最初の10行だけを見るには、dmesg | head -10を実行する。10」を、見たいファイルの先頭からの行数に置き換える。ファイルの最後も同様に見るには、dmesg | tail -10を実行する。
-
各ユーザーの最終ログイン日を見るには、lastlogを使う。/var/log/lastlogは、/var/log/dmesgと同様、バイナリ・ファイルであるため、表示にはコマンドを使用する必要がある。lastlogと入力してEnterを押すだけで、ログを見ることができますし、より簡単に見るためにパイプ(|=パイプ)を使うこともできます。例えば、lastlog|moreを使えば、ログを画面ごとに読むことができますし、lastlog|grep rootを使えば、rootのログイン情報だけを表示することができます。
コメント
最新を表示する
NG表示方式
NGID一覧