
El time(1)
comando le permite cronometrar cualquier comando pasándolo como argumentos a time
.
Sé que es posible redirigir stderr
a stdout
un archivo a través de 2>&1
, y también tee(1)
permite copiar su entrada tanto a la pantalla como a un archivo. Sin embargo, no sé cómo agregar marcas de tiempo a los registros.
¿Existe una herramienta para redirigir stderr
a stdout
un archivo Y agregarle marcas de tiempo para fines de registro?
Respuesta1
Podrías utilizar ts(1)
desde moreutils.
ts
demásutilsantepondrá una marca de tiempo a cada línea de entrada que le proporcione. También puedes formatearlo 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 instalarlo:
sudo apt-get install moreutils
Contenido copiado de esta respuesta:https://stackoverflow.com/a/9813614/221689
Respuesta2
Pruebe annotate-output
desde Debiandevscriptspaquete. Muestra marcas de tiempo y escribe "O" antes de la salida estándar y "E" antes del error estándar. Ejemplo:
# run `ls` on one file that exists, and one that doesn't...
annotate-output ls /bin/bash /tmp/boosh
Producción:
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