ログファイルへの書き込みを追いかける

目次

目標

ログファイルに処理記録が書き出される時に、追加された書き込みを見守りたい。

方法

ファイルに追加された書き込みを追いかけるには、tailコマンドに-Fオプションを付けて使用します。

$ tail -F logfile

これで追加された書き込みが標準出力に表示され続けます。

tailコマンドには似たオプションの-fがあります。これも同じく追記された部分が表示されますが、ログローテートなどでファイル名が変更された時の動作が異なります。

オプション ファイル名が変わった時の動作
-F 同名のファイルを開いて追記を追いかける。
-f そのまま追記を待ち続ける。

ログを追いかけている時にファイル名が変わるのは大抵ログローテートによるものなので、新しいログファイルを開いて追記を追いかけれれる-Fオプションを使うことになります。

lessコマンドもある

ログの追記を見守りたいが、同時に過去の書き込みも遡って読みたい時にはlessコマンドが便利です。

$ less logfile

G キーを押すと常にファイルの最後が表示され、再度 G を押すとその時の最後に更新されます。

そして F キーを押すとtail -fと同じくファイルに追記されるたびに更新されます。ただし追記から更新までのタイムラグがtail -fよりも少し大きくなります。また-fオプションと同じなので、ファイル名が変更されても同名の新しいファイルには自動では切り替わりません(注1)。

脚注

  1. lessのコマンド入力モードでhキーを押してヘルプを表示させれ戻ると、開いていたファイルと同名の新しいファイルの内容が表示されます。逆に元のファイルに戻りたい時にはどうしたら良いのか?