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.
+%d-%m-%y/%H:%M:%S
Sería:+\%d-\%m-\%y/\%H:\%M:\%S
Respuestas:
por qué no solo
0 * * * * (/bin/date && /home/backup.sh) >> /var/log/backup.log 2>&1
fuente
Cómo obtener la marca de tiempo en un archivo
Para agregar una marca de tiempo en un archivo, puede usar
date
verman date
para obtener más detalles. Por ejemplo, si usa en la terminal, tendrá salida comoLa salida está en el formato
dd-mm-yy/hour:min:sec
Si desea poner la marca de tiempo en un archivo, use
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,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
,Y usa lo siguiente en crontab,
Creo que la modificación anterior debería hacer lo que quieras.
fuente
(En Debian Jessie) Use el
ts
comando que forma parte delmoreutils
paquete. P.ej:Esto antepondrá la marca de tiempo a cada línea de la salida y la guardará en su registro.
fuente
moreutils
Como está ejecutando un script de shell, ¿por qué no agrega una línea como,
en su script, es decir, /home/backup.sh
Entonces
agregará una línea antes / después de fbackup.log como jue 14 de junio 11:10:22 UTC 2018
fuente
echo `date -u`
mismo quedata -u
?Puede agregar algo a un archivo usando dos de estas cosas '>'.
fuente