【问题标题】:Is there a rate calculator utility in unix/bash?unix/bash 中是否有速率计算器实用程序?
【发布时间】:2014-07-08 01:04:07
【问题描述】:

我正在寻找一种类似于

的工具

tail -f /var/log/some.log | grep EVENT1 |rate

不断显示事件的速率。

【问题讨论】:

  • 相对于整个日志的比率?我正在考虑 wc 开始。

标签: bash unix command tail rate


【解决方案1】:
tail -f /var/log/some.log | grep --line-buffered EVENT1 | pv -l > /dev/null

pv is a pipe monitor,输出stderr的统计信息; -l 将测量行而不是字节。

您需要在grep 调用中使用--line-buffered,这样它就不会缓冲较大的块,或者在一般情况下,您可以使用stdbuf 来调整缓冲。

【讨论】:

  • 我喜欢你的想法 :) 你比我慢一点,但我不知道 -l 到 pv,所以 +1
  • @sehe 谢谢!是的。我认为在发布非常相似的内容之前,我们花了同样的 90 秒在 shell 中测试我们各自的 pvs。同样为您的示例输出 +1。
【解决方案2】:

假设你的意思是事件/秒:

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'),并仅以字节/秒为单位测量输出带宽:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2012-11-12
    相关资源
    最近更新 更多