Ao fazer um tail -f error.log
, como inserir programaticamente uma quebra de linha depois que nada foi acrescentado ao arquivo por 3 segundos?
(obviamente, uma vez que uma quebra de linha foi adicionada, nenhuma outra quebra de linha deve ser adicionada até que outras linhas de texto sejam adicionadas ao arquivo de log)
Por exemplo, essas linhas são anexadas a error.log :
foo
bar
boo [[wait 4 seconds]]
2far
2foo
2bar
2boo [[wait 40 seconds]]
2far
Esta seria a saída no console:
foo
bar
boo
2far
2foo
2bar
2boo
2far
Você sempre pode implementar o
tail -f
(bem aqui, a menos que você descomente oseek()
, mais comotail -n +1 -f
se estivéssemos despejando o arquivo inteiro) manualmente,perl
por exemplo:Ou deixe
tail -f
fazer o tailing e useperl
para inserir as novas linhas se não houver entrada por 3 segundos:Eles assumem que a saída em si não é desacelerada (como quando a saída vai para um canal que não é lido ativamente).
bash
+date
solução:Python
solução (com argumento de intervalo de tempo dinâmico ):tailing_by_time.py
roteiro:Uso: