テールには次のオプションがあります。
-f The -f option causes tail to not stop when end of file is reached, but rather to wait for additional data to be appended to the
input. The -f option is ignored if the standard input is a pipe, but not if it is a FIFO.
テール出力のsomething
のみをgrepしたいです。
tail -f <FILE> | grep <SOMETHING>
問題は、grepを1回しか実行せずに完了することです。他の出力は発生しません。 -f
でgrepを正しく実行するにはどうすればよいですか?
別のSO質問が役立ちます: 連続ストリームを 'grep'する方法?
Grepの行バッファリングモードをオンにします。
tail -f file | grep --line-buffered my_pattern
これがログファイルの場合、ローテーションされる場合があります。その後、データの提供を停止します。
これは、ファイルが回転しても停止しません。
tail --follow=name /var/log/syslog | grep "some data"