83 votos

Cómo agregar una marca de tiempo para bash script de registro?

Tengo constantemente ejecutando un script que me la salida a un archivo de registro:

script.sh >> /var/log/logfile

Me gustaría añadir una marca de hora antes de cada línea que se anexa a la de registro. Como:

Sat Sep 10 21:33:06 UTC 2011 The server has booted up.  Hmmph.

Es allí cualquier jiu-jitsu que puedo utilizar?

79voto

nullDev Puntos 1778

Se puede canalizar la salida del guión a través de un bucle que se antepone a la fecha y hora actual:

./script.sh | while IFS= read -r line; do echo "$(date) $line"; done >>/var/log/logfile

Si usted va a usar mucho en esto, es fácil hacer un golpe de función para controlar el bucle:

adddate() {
    while IFS= read -r line; do
        echo "$(date) $line"
    done
}

./thisscript.sh | adddate >>/var/log/logfile
./thatscript.sh | adddate >>/var/log/logfile
./theotherscript.sh | adddate >>/var/log/logfile

46voto

inazaruk Puntos 37760

Consulte "ts" de Ubuntu "moreutils" pkg:

command | ts

O, si $comando hace automático el almacenamiento en búfer (requiere esperar-dev pkg):

unbuffer command | ts

13voto

katit Puntos 130

La fecha de comando de proporcionar esa información

date -u
Sat Sep 10 22:39:24 UTC 2011

así que usted puede

echo $(date -u) "Some message or other"

es que lo que quería ?

12voto

Luke Puntos 1

Usted puede simplemente echo el comando de las salidas del archivo de registro. es decir,

echo "`date -u` `./script.sh`" >> /var/log/logfile

Lo que realmente funciona :)

Ejemplo:

[sparx@E1]$ ./script.sh 
Hello Worldy
[sparx@E1]$ echo "`date -u` `./script.sh`" >> logfile.txt
[sparx@E1]$ cat logfile.txt 
Mon Sep 12 20:18:28 UTC 2011 Hello Worldy
[sparx@E1]$ 

6voto

cjc Puntos 17092

Te refieres a como:

(date && script.sh) >> /var/log/logfile

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: