No.458
【tail】ファイルの監視をフィルタしながら行う【grep】
膨大な監視情報を削減して効率よくしたいと思う貴方へ
tail -f コマンドでログファイルを監視するのは基本のひとつ。
ただ、ログの種類によっては流れてくる情報が膨大であり、フィルタリングしないととても監視できないことも多い。
とはいえ、普通に grep してしまってはうまくいかない。(grepが出力結果をバッファしてしまうので)
そんなときは grep コマンドの --line-buffered オプションを使おう。
--line-buffered オプション
grep は通常では出力をバッファして吐き出す。そのため、リアルタイムに監視している情報でも、grep が実行されたタイミングの出力しか抽出できなくなってしまう。
それを解決するのが --line-buffered オプション。
英語名のとおり「行ごとにバッファを行う」ようになるため、tail コマンドの行ごとの出力に対応できるようになる仕組みだ。
tail -f 対象ファイル名 | grep --line-buffred フィルタリング文字