Eu quero fazer um cálculo simples do número de linhas por minuto adicionado a um arquivo de log.
Também quero armazenar a contagem para cada segundo.
O que eu preciso é da saída do seguinte comando como uma lista que será atualizada a cada segundo:
watch -n1 'wc -l my.log'
Como gerar a 'atualização' do comando 'watch' como uma lista?
wait
- tentewatch -n 1 "sleep 5"
.watch
útil, mas ela não fornece nem uma solução tão boa quanto uma baseada em relógio, mas nenhuma responde à pergunta "taxa na qual um arquivo de log cresce" com grande precisão.watch
tem uma-p
opção que fará isso corretamente, se possível (obviamente, você não pode executar um comando que leva 5 segundos a cada 1 segundo, se não for permitido vários simultâneos). Eu sei, eu escrevi :-PUma pergunta antiga, mas acabei de encontrar uma resposta muito fácil:
Isso executará
wc
cada segundo, adicionará sua saída ao arquivo Statistics.log e também a exibirá na tela.Então, você terminará com um arquivo preenchido com números, representando o número sucessivo de linhas de
my.log
.fonte
watch "($MYCMD | tee -a $MYLOG)"
não éwatch "($MYCMD)" | tee -a $MYLOG
. Se você entendeu errado como eu, a saída será muito, muito confusa. Outra coisa a ser observada aqui é que esse comando não adiciona o registro de data e hora da execução de cada comando por padrão, portanto a resposta com o loop ainda pode funcionar melhor para você.E se
fonte
Tente o seguinte:
fonte
Me deparei com essa pergunta quando estava tentando obter uma saída melhor / registrada
du -sh $data_path
. Eu usei o padrão "while command, sleep" encontrado aqui, mas usei um AWK complexo para dar a saída que eu queria.Na verdade, eu fiz isso como um oneliner, e é por isso que há ponto e vírgula. Mas, para torná-lo legível, eu o expliquei. A saída se parece com:
fonte
Você pode criar um script que faça isso por você. Liguei para o meu
keep
(como, continue fazendo isso) e coloquei nobin
caminho.Este é o meu script:
fonte
"$@"
para executar o comando (argumentos) em vez de sem aspas$*
. Dessa forma, você fará com que o shell mantenha argumentos citados, etc., como o usuário esperaria. FTFY.