pv
это ваша команда! P фе V iewer печатает статистику о прохождении данных через него, и может работать в любом месте трубопровода, так как это трубы стандартного ввода непосредственно через стандартный вывод. Например:
tail -f /var/log/nginx/access.log | pv --line-mode --rate > /dev/null
Команда pv
выводит в stderr текущее количество строк в секунду (по умолчанию - байты в секунду), что для данного конкретного источника данных (файл журнала по умолчанию Nginx) соответствует входящим веб-запросам в секунду. Я забочусь только о счетах, так что я в трубу /dev/null
. Есть также варианты, такие как:
-b
(общее количество строк),
--average-rate
(средняя скорость с начала), и
--timer
(отслеживает, как долго труба идет).
Если вы не скажете --line-mode
, он будет считать байты, что, вероятно, не то, что вы хотите для журналов сервера, но может быть удобно в другом месте.
Последнее замечание: ... | pv -lb > file.txt
очень похоже ... | tee file.txt | awk '{printf "\r%lu", NR}'
, что также удобно для подсчета строк, но pv
вызов намного короче, хотя вывод не такой захватывающий - pv
обновляется каждую секунду по умолчанию, в то время как эта awk
команда обновляется непрерывно.