¿Cómo hago para que crontab genere un registro único cada vez que ejecuta un trabajo?

¿Cómo hago para que crontab genere un registro único cada vez que ejecuta un trabajo?

Aquí está el trabajo crontab

/usr/local/bin/python2.7 /home/scripts/script.py >> /home/scripts/logs/log.log 2>&1

¿Cómo genero un nuevo registro cada vez que se ejecuta el trabajo?

Me parece bien agregar un contador creciente al archivo de registro cada vez que se genera. No sé cómo hacer esto.

¿Realmente tengo que ejecutar otro trabajo cron para hacer eso?

Respuesta1

Puede utilizar el datecomando para generar un nombre de archivo único (más o menos):

/usr/local/bin/python2.7 /home/scripts/script.py > /home/scripts/logs/"`date +\%d\%m\%y_\%H\%M\%S`".log 2>&1

EDITAR:Asegúrate de escapar de los signos de porcentaje.( \%). Ellos tienen unsignificado especialen cron y el crontab devolverá un error.

<date_time>.logDe esa manera, se creará un nuevo archivo de registro (llamado ) cada vez que se ejecute su trabajo.

$ date; touch "`date +%d%m%y_%H%M%S`.log"
  Tue Sep 25 04:39:25 CEST 2012
$ ls *log
  250912_043925.log

Suponiendo que su secuencia de comandos no se ejecute más de una vez por segundo (lo cual no puede suceder si está ejecutando un crontab simple), debería estar bien.

Si, como se sugiere en los comentarios, su script lo ejecutan diferentes usuarios, puede agregar el nombre de usuario al nombre del archivo de registro:

/usr/local/bin/python2.7 /home/scripts/script.py > /home/scripts/logs/$(echo -n `whoami`_`date +\%d\%m\%y_\%H\%M\%S`).log 2>&1

información relacionada