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