¡Qué pesadilla! Mi cron daemon me envía un correo-e de aviso cada vez que algo inesperado ocurre en la ejecución de los comandos. Bien, pues resulta que me han llegado como 500 correos en los que todos comentaban el mismo error: “/bin/bash: root: command not found”. ¡Claro que root no es un comando! ¿Pero por qué cron intenta ejecutar root como un comando? Hoy me ha quedado clarísimo.

Uso vixie-cron como cron daemon, este demonio al igual que otros tiene soporte para un crontab file de sistema y otros para cada usuario de sistema. La diferencia entre el crontab file de un usuario y el del sistema es que el sexto campo en el crontab file del sistema es el usuario usado para ejecutar el comando que aparece en el campo séptimo. El cron de sistema es el único que puede ejectuar comandos haciéndose pasar por otro usuario del sistema. Debido a esto, si cualquier otro usuario tiene un crontab file, el sexto campo debe ser directamente el comando a ejecutar.

¿Qué narices me había pasado? Pues que en algún momento edité el crontab del usuario root como si el de sistema se tratase, por equivocación. Así que tenía el mismo crontab file para el sistema como para el usuario root. Si quieres editar el crontab file del sistema jamás uses el comando crontab tal cual. Para editarlo se recomienda usar el comando crontab -e o bien editar /etc/crontab con tu editor de texto favorito.

¿Y como solucioné el problema? Ejecuté como root el comando crontab -r que borra el crontab de usuario. De ese modo ya solo se ejecuta el crontab de sistema y todo ha vuelto a la normalidad.

2 Respuestas a “La pesadilla del Cron”
  1. Ángel dice:

    En primer lugar pensaba que hablabas de la enfermedad intestinal

    En segundo lugar, qué molón lo del cron… y menuda armaste sin querer!

  2. Juanlu dice:

    Jajaja, si uno se despista puede meter la pata mucho.

  3.  
Deja una Respuesta

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>