Comment ajouter les journaux à une crontab avec horodatage


9

Dans crontab, j'ai planifié un script de sauvegarde quotidien. Maintenant, lorsque le cron exécute le script, l'état est enregistré dans un fichier journal comme indiqué ci-dessous.

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

Maintenant, lorsque le cron exécute un script, le contenu du journal est renouvelé à chaque fois. Donc, je veux que le contenu soit ajouté au même fichier avec l'horodatage de l'heure exécutée et en dessous du contenu de chaque fois avec le contenu existant. Comment puis-je faire ceci.


N'oubliez pas d'échapper au caractère "%" dans votre crontab! +%d-%m-%y/%H:%M:%S+\%d-\%m-\%y/\%H:\%M:\%S
Deviendrait

Réponses:



5

Comment obtenir l'horodatage dans un fichier

Pour ajouter un horodatage dans un fichier, vous pouvez utiliser datevoir man datepour plus de détails. Par exemple, si vous utilisez dans le terminal, vous aurez une sortie comme,

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

La sortie est au format dd-mm-yy/hour:min:sec

Si vous souhaitez mettre l’horodatage dans un fichier, utilisez

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

Redirection

Si vous utilisez date +%d-%m-%y/%H:%M:%S > filenamealors la date sera stockée dans le fichier mais elle sera écrasée à chaque fois que vous utiliserez la commande. Pour l'ajouter dans une utilisation de fichier existante,

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

Il ajoutera la dernière sortie d'exécution à la fin de votre fichier existant.

Ce que vous faites dans votre cas

Vous pouvez ajouter la ligne suivante à la fin de votre /home/backup.sh,

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

Et utilisez ce qui suit dans crontab,

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

Je pense que la modification ci-dessus devrait faire ce que vous voulez.


Cela devrait être la réponse acceptée
Dominik

1

(Sur Debian Jessie) Utilisez la tscommande qui fait partie du moreutilspaquet. Par exemple:

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

Cela ajoutera l'horodatage à chaque ligne de la sortie et l'enregistrera dans votre journal.


1
Cela n'a pas fonctionné pour moi, j'utilise Ubuntu 16.04. J'ai installémoreutils
Hamman Samuel

0

Puisque vous exécutez un script shell, pourquoi ne pas ajouter une ligne comme,

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

dans votre script ie /home/backup.sh

alors

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

ajoutera une ligne avant / après fbackup.log comme Thu Jun 14 11:10:22 UTC 2018


N'est-ce pas echo `date -u`la même chose que data -u?
Stephen Rauch

L'écho ajoute un saut de ligne AIUI.
pbhj

-2

Vous pouvez ajouter quelque chose à un fichier en utilisant deux de ces choses '>'.

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

$ cat test.txt
test
test

2
Qu'en est-il de l'horodatage
user3004356
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.