No.458


【tail】ファイルの監視をフィルタしながら行う【grep】

膨大な監視情報を削減して効率よくしたいと思う貴方へ

 tail -f コマンドでログファイルを監視するのは基本のひとつ。
 ただ、ログの種類によっては流れてくる情報が膨大であり、フィルタリングしないととても監視できないことも多い。

 とはいえ、普通に grep してしまってはうまくいかない。(grepが出力結果をバッファしてしまうので)

 そんなときは grep コマンドの --line-buffered オプションを使おう。


--line-buffered オプション

 grep は通常では出力をバッファして吐き出す。そのため、リアルタイムに監視している情報でも、grep が実行されたタイミングの出力しか抽出できなくなってしまう。

 それを解決するのが --line-buffered オプション。
 英語名のとおり「行ごとにバッファを行う」ようになるため、tail コマンドの行ごとの出力に対応できるようになる仕組みだ。

tail -f 対象ファイル名 | grep --line-buffred フィルタリング文字