読者です 読者をやめる 読者になる 読者になる

アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

ファイル更新をリアルタイム監視(特定の文字列を含む/含まない行のみ)

Linux
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