我正在尝试使用一个工作系统来监控特殊日志。我通常只想要一个非常具体的模式,我提取使用grep
和管道tail -f
。我注意到grep不会输出所有内容,而是保留一些行缓冲。我想如果你有一个输出所有东西然后终止并关闭流的管道,这是有道理的。
但是,tail -f
这对我来说不起作用。
出现同样的问题sed
。
这是我想要使用的示例命令:
clear && tail -F -n1000 /var/log/fail2ban.log | grep 'WARNING.*Ban' | sed s/'fail2ban.actions: WARNING '//g | grep -E --color 'ssh-iptables-perma|$'
举个例子:
上面命令的最后一行是这样的:
2015-05-04 11:17:24,551 [ssh-iptables] Ban x.x.x.x
并使用此命令:
clear && tail -F -n1000 /var/log/fail2ban.log | grep 'WARNING.*Ban' | sed s/'fail2ban.actions: WARNING '//g
最后一行是这样的:
2015-05-04 19:45:17,615 [ssh-iptables] Ban y.y.y.y
删除更多管道让我进一步了解最新的条目。
我怎样才能避免管道中的这种缓存?
sed
。