77 votes

Envoi de la sortie de cron vers un fichier dont le nom contient un horodatage

J'ai une crontab comme celle-ci sur une installation LAMP :

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

Ceci écrit la sortie du fichier dans cron.log . Cependant, lorsqu'il s'exécute à nouveau, il écrase ce qui se trouvait précédemment dans le fichier.

Comment puis-je faire en sorte que le cron 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 y a une sorte d'horodatage.

Merci d'avance.

130voto

Dave Points 191

Essayez :

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 simplement d'échapper tout % comme \% comme ci-dessus.

24voto

tony gil Points 289

Je vous recommande vivement de tout sauvegarder dans le même fichier, en utilisant l'horodatage, car expliqué sur le blog d'Abdullah Diab .

supprimer

2>&1

... et le faire passer par le script d'horodatage avant de le sauvegarder dans le fichier journal.

timestamp.sh script :

#!/bin/bash
while read x; do
    echo -n `date +%d/%m/%Y\ %H:%M:%S`;
    echo -n " ";
    echo $x;
done

N'oubliez pas de chmod +x timestamp.sh pour le rendre exécutable.

Ensuite, éditez la ligne de travail cron en utilisant crontab -e pour être comme ça :

/path/to/my/command.sh 2>&1 | /path/to/timestap.sh >> /var/log/cron/my_log.log

7voto

jason saldo Points 5036

Vous pouvez également ajouter vos résultats au fichier journal en procédant comme suit :

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

2voto

meetpd Points 2613

J'ai modifié le script comme ceci :

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

-1voto

user213005 Points 19

J'ai résolu ce problème ; il suffit d'ajouter le chemin de la date (/bin/date) avant la commande date.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X