Eu quero fazer algo assim:
watch tail -f | wc -l
#=> 43
#=> 56
#=> 61
#=> 44
#=> ...
Conta novas linhas de cauda a cada segundo
/ Linux, CentOs
Para ser mais claro. Eu tenho algo parecido com isto:
tail -f /var/log/my_process/*.log | grep error
Estou lendo algumas mensagens de erro. E agora eu quero contá-los. Quantos erros eu tenho em um segundo. Portanto, uma linha em um log é um erro em um processo.
tail
watch
command-line-interface
fl00r
fonte
fonte
tail -f /path/to/file
sozinho. Se você quiser assistir às linhas do arquivo, pode usarwatch wc -l /path/to/file
.tail -f /var/log/my_process/*.log |grep error > /tmp/error.lines & ; watch wc /tmp/error.lines
? Então faça contas.Respostas:
Eu descobri recentemente o PV, e é muito legal, você poderia fazer algo como
tail -f logfile | pv -i2 -ltr > /dev/null
fonte
Aqui está um método rápido e sujo. Você basicamente quer quebrar o
tail
ewatch wc
em partes separadas, e fazer algo como:Nesse ponto, você pode fazer contas para obter um número de erros / s. Mas, se você estiver fazendo isso apenas para um exame pontual da sua taxa de erro, o uso rápido e sujo pode ser bom o suficiente.
fonte
Caso o pv não esteja disponível, isso pode ser feito com o perl:
A cada segundo:
A cada 10 segundos
Saída de amostra:
fonte
Você pode tentar algo como isto:
Imprime o número da linha na frente de cada linha.
fonte
nl
fará isso, não exigindo a chamada para perl.