¿Cómo sé si los trabajos han sido / están realizando? - Crontab
Pregunta
He seguido la sugerencia de esta pregunta
como yo estoy usando Django, he puesto el guión hasta la fecha y hora de cada ejecución del script en el PP tienda, pero no hay ninguna entrada se ha almacenado todavía en la base de datos.
¿Hay alguna forma de averiguar, aparte de escribir "arriba" y buscar a través de?
Solución
En primer lugar, probablemente configurar cron para enviar por correo a sí mismo cualquier salida mediante el uso de MAILTO
:
En / etc / crontab:
MAILTO=username
En segundo lugar, por lo general añadir algo a mi script que (casi) no puede fallar posiblemente, como la siguiente:
#!/bin/sh
echo "$0 ran on `date +%c`" >> /tmp/crontab_test.log
# ... rest of program
Si está llamando a un script en Python directamente desde cron, que podría hacer algo similar o crear un script envoltorio.
Otros consejos
Si usted tiene sendmail instalado, se puede añadir lo siguiente a '/ etc / alias'
root: your_name@domain.com
Después de hacer eso, actualiza los alias de ejecutar este comando:
sudo newaliases
Cron se enviará por correo electrónico de forma automática cada vez que se ejecuta un trabajo. No hay necesidad de especificar que en el archivo crontab.
Además, asegúrese de que test sus capacidades de correo electrónico (por ejemplo, asegúrese de que son capaces de enviar mensajes de correo electrónico desde el servidor) y, por último, crear una tarea programada trivial y prueba si recibe un correo electrónico.
No asuma!
Además de la configuración de cron para enviar correo, puede enviar la salida de cron a un recurso de registro syslog separada añadiendo lo siguiente a su /etc/syslog.conf
.
# Log cron stuff cron.* /var/log/cron.log
Esto debería registrar un mensaje a /var/log/cron.log cada vez que se ejecuta un trabajo.