
tengo este cron
38 * * * * /bin/bash -l -c 'cd /var/rails/site/releases/20120705144335 && script/rails runner -e qa '\''Play.load_lists'\'''
Tengo este cron bajo un usuario diferente, así que cambio de usuario para implementar
sudo su deploy
crontab -e
y veo mi cron, luego sigo el registro debajo del usuario root
tail -n300 -f /var/log/syslog
y veo mi cron
Jul 5 11:38:01 ip-10-70-75-234 CRON[4971]: (deploy) CMD (/bin/bash -l -c 'cd /var/rails/site/releases/20120705144335 && script/rails runner -e qa '\''Play.load_lists'\''')
Jul 5 11:38:01 ip-10-70-75-234 CRON[4970]: (CRON) info (No MTA installed, discarding output)
Pero el cron no se está ejecutando o hay un problema de permisos... Cuando ejecuto la tarea en la consola funciona muy bien, pero no en el cron... ¿alguna idea de lo que me estoy perdiendo?
este es Ubuntu 12.04LTS
Tal vez pueda registrar una lista más detallada en algún lugar para ver los errores.
Respuesta1
CRON entrega la salida de las aplicaciones (stdout, stderr) a través del correo local. Aparentemente, Ubuntu no tiene un MTA (Agente de transferencia de correo) instalado de forma predeterminada en estos días. CRON imprime una notificación en el archivo de registro del sistema cada vez que falla una entrega:
Jul 5 11:38:01 ip-10-70-75-234 CRON[4970]: (CRON) info (No MTA installed, discarding output)
Puede instalar un MTA, por ejemplo, postfix, solo para uso interno (local), por ejemplo
aptitude install postfix
Durante la instalación se le preguntará qué configuración predeterminada utilizar. Debes seleccionar la Local only
configuración.
A partir de entonces puede encontrar el resultado de las aplicaciones ejecutadas por CRON usando
tail -f /var/mail/<your_username>
Por supuesto, también puede escribir la salida del registro en un archivo de registro dedicado o canalizar/redireccionar la salida a un archivo utilizando la funcionalidad de shell incorporada...