
O time(1)
comando permite cronometrar qualquer comando, passando-o como argumento para time
.
Eu sei que é possível redirecionar stderr
para stdout
um arquivo via 2>&1
, e também tee(1)
permite copiar sua entrada para a tela e para um arquivo. No entanto, não sei como adicionar carimbos de data/hora aos logs.
Existe uma ferramenta para redirecionar stderr
para stdout
um arquivo e anexar carimbos de data e hora a ele para fins de registro?
Responder1
Você poderia usar ts(1)
de moreutils.
ts
demaisutilsirá anexar um carimbo de data/hora a cada linha de entrada que você fornecer. Você também pode formatá-lo usando strftime.
$ echo 'foo bar baz' | ts
Mar 21 18:07:28 foo bar baz
$ echo 'blah blah blah' | ts '%F %T'
2012-03-21 18:07:30 blah blah blah
$
Para instalá-lo:
sudo apt-get install moreutils
Conteúdo copiado desta resposta:https://stackoverflow.com/a/9813614/221689
Responder2
Experimente annotate-output
no Debiandescritivospacote. Ele mostra carimbos de data/hora e escreve "O" antes da saída padrão e "E" antes do erro padrão. Exemplo:
# run `ls` on one file that exists, and one that doesn't...
annotate-output ls /bin/bash /tmp/boosh
Saída:
03:30:52 I: Started ls /bin/bash /tmp/boosh
03:30:52 O: /bin/bash
03:30:52 E: ls: cannot access '/tmp/boosh': No such file or directory
03:30:52 I: Finished with exitcode 2