Generalidades
Este artículo cubre algunos problemas comunes y pasos de solución de problemas que puede seguir para arreglar tus cron jobs.
En los siguientes ejemplos, username sería tu usuario Shell y example.com tu sitio web.
Pasos de solución de problemas
Establecer una dirección de correo electrónico
Cuando pruebes tu nuevo cron job, asegúrate de establecer una dirección de correo para informar los resultados. Esto te brinda información importante sobre lo que puede estar yendo mal si la línea de comando no ejecuta el cron job como se desea.
Solo recibirás un correo si el cron falla, o si el cron job crea la salida para ver.
Establecer los permisos de archivo correctos
Si planeas utilizar software externo con un cron job, asegúrate de haber configurado 'write' y otros permisos para los archivos en tus carpetas remotas. Si recibes un mensaje de error sobre "permiso denegado", significa que tus permisos no están configurados correctamente. También especificar la ruta completa del archivo en el que estás escribiendo puede evitar problemas con el entorno del cron job ejecutándose desde un directorio diferente.
Usar rutas de archivo completas
El crontab del servidor necesita saber exactamente dónde leer y escribir archivos. Por ejemplo, si ejecutas manualmente el siguiente archivo llamado file.sh, creará un nuevo archivo llamado output.txt en el directorio en el que ejecuta el comando.
[server]$ sh file.sh > output.txt
Sin embargo, un cron job no podría localizar ninguno de estos archivos. En cambio, tu cron job necesitaría especificar las rutas completas como esta:
0 12 * * * sh /home/username/example.com/file.sh > /home/username/example.com/output.txt
Mensajes de Error
Could not open input file
Es posible que te enviemos un correo cuando el cron job no se ejecute. Verifica el asunto del correo que se te envió. Comenzará así:
Cron username@server
Toma nota de este username, luego verifica el cron job que creaste en el panel. Estos deberían ser el mismo nombre de usuario. Si el nombre de usuario es diferente de lo que ves en el panel, asegúrate de ajustar tu cron job al nombre de usuario correcto.
Además, asegúrate de que los permisos del archivo estén configurados para que el usuario pueda ejecutarlo. Esto generalmente significa 644 permisos para un archivo y 755 para un directorio.
No such file or directory
Verifica las rutas de tus archivos. Intenta agregar la ruta completa del archivo al archivo que estás intentando ejecutar, así como la ruta completa del archivo a cualquier archivo en el que estés escribiendo. Por ejemplo, en lugar de:
cat file.txt
Cámbialo a:
cat /home/username/example.com/file.txt
Solución de problemas de Servidor Dedicado
Es raro que el servicio cron en un servidor deje de ejecutarse. Sin embargo, si estás utilizando un Servidor Dedicado, puedes verificar que el cron se esté ejecutando este comando de shell:
[server]$ ps aux | grep cron
También puedes verificar el registro del sistema para ver las entradas etiquetadas como 'CRON' después de cambiar tu usuario administrador y ejecutar los siguientes comandos.
[server]$ sudo su - [root]# sudo grep CRON /var/log/syslog
Si no ves ninguna entrada CRON reciente, puedes reiniciar el servicio cron. Para reiniciar cron, corre este comando en el Servidor Dedicado desde el usuario administrador:
[root]# sudo service cron restart