tail-f多次grep过滤输出
tail -f log | grep xxx | grep yyy
发现grep失效,无法做正确输出,原因如下:
管道 | 是全缓冲的,一般来说buffer_size为4096,有些是8192。不管具体值多少,只有buffer_size满了,才会看到输出。
解决方法:
tail -f log | grep --line-buffer xxx | grep --line-buffer yyy
tail -f filename.log | grep --line-buffered -i xxx | grep --line-buffered -v yyy
解决tail -f inotify 资源耗尽问题
查看 inotify 的配置
sysctl fs.inotify
修改 inotify 文件监听上限
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p (重载配置文件,使之马上生效)
参考资料:
tail -f 多次grep过滤输出