web-dev-qa-db-fra.com

Comment ajouter les journaux à une crontab avec horodatage

Dans crontab, j’ai programmé un script de sauvegarde quotidien. Maintenant, lorsque le cron exécute le script, les statuts sont consignés dans un fichier journal, comme indiqué ci-dessous.

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

Désormais, 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 d'exécution et en dessous du contenu de chaque heure avec le contenu existant. Comment puis-je faire ceci.

9
user3004356

Comment obtenir l'horodatage dans un fichier

Pour ajouter un horodatage dans un fichier, vous pouvez utiliser date voir man date pour plus de détails. Par exemple, si vous utilisez dans un 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 > filename, la date sera stockée dans le fichier mais elle sera écrasée à chaque fois que vous utiliserez la commande. Pour l'ajouter à un fichier existant, utilisez

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.

5
souravc

pourquoi pas juste

0 * * * * (/bin/date && /home/backup.sh) >> /var/log/backup.log 2>&1

5
Alexandr Perfilov

(Sur Debian Jessie) Utilisez la commande tsqui fait partie du package moreutilsname__. 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
Simon Woodside

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 c'est-à-dire /home/backup.sh

Ensuite

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

0
Nihal Sangeeth