ファイル更新をリアルタイム監視(特定の文字列を含む/含まない行のみ)
tail -f ファイルパス
でアクセスログなどの監視を行うことが時々ありますが、
「このIPからのアクセスだけ監視したい」とか「go○gleのクローリングうぜえ」とかいうとき用の対策を探したらあったのでメモ。
単にtailとgrepの合わせ技なので詳しくは書きませんが。
特定の文字列を含む行のみリアルタイム監視
tail -f ファイルパス | grep 文字列
特定の文字列を含まない行のみリアルタイム監視
tail -f ファイルパス | grep -v 文字列
サンプル
# hoge.logを監視 # 文字列hogeを含む行のみ tail -f hoge.log | grep hoge # 文字列hogeとfugaを含む行のみ tail -f hoge.log | grep hoge | grep fuga # 文字列hogeを含み、fugaを含まない行のみ tail -f hoge.log | grep hoge | grep -v fuga
こういうふうに複数条件を重ねても有効ですが、表示は遅くなるようです。
理屈と対応策は下記参考サイトを。
参考:grep2 - Aufheben Software
http://software.aufheben.info/linux/grep2.html