Cómo agregar los registros a un crontab con marca de tiempo


9

En crontab, programé un script de copia de seguridad diario. Ahora, cuando el cron ejecuta el script, el estado se registra en un archivo de registro como se muestra a continuación.

0 0 * * * /home/backup.sh > /home/groupz/db-backup/fbackup.log 2>&1  

Ahora, cuando el cron ejecuta un script, el contenido del registro se renueva cada vez. Entonces, quiero que los contenidos se agreguen al mismo archivo con la marca de tiempo del tiempo ejecutado y debajo de los contenidos de cada vez junto con los contenidos existentes. Cómo puedo hacer esto.


¡No olvides escapar del carácter "%" en tu crontab! +%d-%m-%y/%H:%M:%SSería:+\%d-\%m-\%y/\%H:\%M:\%S
Vylmarion

Respuestas:



5

Cómo obtener la marca de tiempo en un archivo

Para agregar una marca de tiempo en un archivo, puede usar datever man datepara obtener más detalles. Por ejemplo, si usa en la terminal, tendrá salida como

$ date +%d-%m-%y/%H:%M:%S
19-12-13/09:14:42

La salida está en el formato dd-mm-yy/hour:min:sec

Si desea poner la marca de tiempo en un archivo, use

date +%d-%m-%y/%H:%M:%S > filename

Redireccionamiento

Si lo usa date +%d-%m-%y/%H:%M:%S > filename, la fecha se almacenará en el archivo, pero se sobrescribirá cada vez que use el comando. Para agregarlo en un uso de archivo existente,

date +%d-%m-%y/%H:%M:%S >> filename

Agregará la última salida de ejecución al final de su archivo existente.

Lo que haces en tu caso

Puede agregar la siguiente línea al final de su /home/backup.sh,

date +%d-%m-%y/%H:%M:%S

Y usa lo siguiente en crontab,

0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1

Creo que la modificación anterior debería hacer lo que quieras.


Esta debería ser la respuesta aceptada
Dominik

1

(En Debian Jessie) Use el tscomando que forma parte del moreutilspaquete. P.ej:

0 0 * * * /home/backup.sh | ts '[%Y-%m-%d %H:%M:%S]' > /home/groupz/db-backup/fbackup.log 2>&1  

Esto antepondrá la marca de tiempo a cada línea de la salida y la guardará en su registro.


1
No funcionó para mí, estoy usando Ubuntu 16.04. Instalémoreutils
Hamman Samuel

0

Como está ejecutando un script de shell, ¿por qué no agrega una línea como,

some ./script    
echo `date -u `
some ./other/script

en su script, es decir, /home/backup.sh

Entonces

0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1

agregará una línea antes / después de fbackup.log como jue 14 de junio 11:10:22 UTC 2018


¿No es lo echo `date -u`mismo que data -u?
Stephen Rauch

El eco agrega un salto de línea AIUI.
pbhj

-2

Puede agregar algo a un archivo usando dos de estas cosas '>'.

$ echo "test" >> test.txt
$ echo "test" >> test.txt

$ cat test.txt
test
test

2
¿Qué pasa con la marca de tiempo
User3004356
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.