web-dev-qa-db-fra.com

Envoi de la sortie cron vers un fichier avec un horodatage dans son nom

J'ai un crontab comme celui-ci sur une configuration LAMP:

0 0 * * * /some/path/to/a/file.php > $HOME/cron.log 2>&1

Cela écrit la sortie du fichier dans cron.log . Cependant, quand il s'exécute à nouveau, il écrase tout ce qui était précédemment dans le fichier.

Comment puis-je obtenir cron pour sortie dans un fichier avec un horodatage dans son nom de fichier?

Un exemple de nom de fichier serait quelque chose comme ceci: 2010-02-26-000000-cron.log

Je ne me soucie pas vraiment du format, tant qu'il a un horodatage quelconque.

Merci d'avance.

43
Philip Morton

Essayer:

0 0 * * * /some/path/to/a/file.php > $HOME/`date +\%Y\%m\%d\%H\%M\%S`-cron.log 2>&1

Jouez avec le format de la date, si vous le souhaitez; assurez-vous juste d'échapper à tout % comme \%, comme ci-dessus.

72
fission

je vous recommande fortement de tout enregistrer dans le même fichier, en utilisant l'horodatage, comme expliqué ici .

retirer

2> & 1

et exécutez-le via le script d'horodatage avant de l'enregistrer dans le fichier journal (comme expliqué dans le lien ci-dessus).

14
tony gil

Vous pouvez également ajouter votre sortie au fichier journal en procédant comme suit:

0 0 * * * /some/path/to/a/file.php >> $HOME/cron.log 2>&1

J'ai modifié le script comme ceci:

`/bin/date +\%Y\%m\%d`.log
0
Ardhy