pvé seu comando! P ipê V iewer imprime estatísticas sobre os dados que passa através dele, e pode ser executado em qualquer lugar no seu pipeline, uma vez que tubos stdin diretamente sobre a stdout. Por exemplo:
tail -f /var/log/nginx/access.log | pv --line-mode --rate > /dev/null
O pvcomando imprime para stderr o número atual de linhas por segundo (o padrão é bytes por segundo), que, para essa fonte de dados específica (arquivo de log padrão do Nginx), equivale a solicitações da Web recebidas por segundo. Eu só me preocupo com as contagens, então entro em pânico /dev/null. Existem também opções como:
-b (número total de linhas),
--average-rate (taxa média desde o início) e
--timer (rastreia quanto tempo o cano está funcionando).
Caso contrário --line-mode, ele contará bytes, o que provavelmente não é o que você deseja para os logs do servidor, mas pode ser útil em outros lugares.
Nota final: ... | pv -lb > file.txté muito parecida ... | tee file.txt | awk '{printf "\r%lu", NR}', o que também é útil para contar linhas, mas a pvchamada é muito mais curta, embora a saída não seja tão interessante - pvatualiza a cada segundo por padrão, enquanto esse awkcomando é atualizado continuamente.