我正在寻找一种类似于
的工具 tail -f /var/log/some.log | grep EVENT1 |rate
继续显示事件的比率。
答案 0 :(得分:5)
tail -f /var/log/some.log | grep --line-buffered EVENT1 | pv -l > /dev/null
pv
is a pipe monitor,输出stderr
的统计信息; -l
将测量行而不是字节。
您需要在--line-buffered
电话上使用grep
,以便它不会缓冲较大的块,或者对于一般情况,您可以使用stdbuf
来调整缓冲
答案 1 :(得分:1)
假设你的意思是事件/秒:
while read line; do echo -n "$(grep -c EVENT1 <<<"$line")"; done | pv >/dev/null
这使用pv
,这是一个非常简单的实用程序。 sudo apt-get install pv
对大多数的歧视(或yum -i
等)
输入,当输入是例如(while true; do echo yes; sleep .1; done)
:
218B 0:00:22 [9,88B/s] [ <=> ]
使用的技术是用输出中的单个字节替换每个匹配的行(即'1'
),并且只测量以每秒字节为单位的输出带宽:)