Есть ли в unix/bash утилита калькулятора тарифов?
Я ищу инструмент, который делает что-то похожее на
tail -f /var/log/some.log | grep EVENT1 |rate
который продолжает отображать скорость события.
2 ответа
tail -f /var/log/some.log | grep --line-buffered EVENT1 | pv -l > /dev/null
pv
это труба монитор, который выводит статистику по stderr
; -l
будет измерять строки вместо байтов.
Вам нужно будет использовать --line-buffered
на ваше grep
вызов, чтобы он не буферизовал большие блоки, или для общего случая вы можете использовать stdbuf
настроить вашу буферизацию.
Предполагая, что вы имеете в виду события / секунду:
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'
) и просто измерить пропускную способность в байтах в секунду:)