viernes, 19 de octubre de 2012

No funciona un script en el cron de unix

Para saber por qué un cron no está funcionando correctamente, lo primero que tendríamos que hacer es revisar el log.
Normalmente suele estar en /var/cron o /var/logs/cron pero como siempre dependiendo de la distribución va a estar en un lado o en otro. Otra cosa importante es que tengamos activado el log. Si no lo está, haciendo un "man cron" es posible que os ayude a decir donde está el archivo que activa el log.

Una vez situado en el directorio del log podemos lanzar el comando grep.

grep rc= log

Lo que estamos tratando de buscar es la cadena rc=
Los resultados seran rc=xx siendo xx algún número. Finalmente tendrémos que buscar qué significa ese código. Os dejo un enlace a este blog donde he puesto lo que significan los códigos de errores de crontab.

http://www.danielheras.com/2012/10/codigos-de-errores-del-cron-de-unix.html


En un caso particular tuve un error rc=2 (no encuentra archivo o directorio ) debido a que al programar el script, no utilicé rutas absolutas. Esto es muy recomendable por que suele ocurrir que cuando ejecutas tú script sin el cron funciona a la perfección .

Al invocar/ejecutar el script desde el cron con el usuario correspondiente no se cargan las variables de entorno ni donde estás hubicado en el directorio. Por tanto puede dar ese error, el cron manda la orden correctamente pero no localiza el script.

No hay comentarios:

Publicar un comentario