upnoow
Moodle 29 Oct 2026 · Por Damián Sobrera

Moodle: el cron no se ejecuta, cómo detectarlo y solucionarlo

Los correos no llegan, los respaldos automáticos no corren y las tareas quedan colgadas. Casi siempre hay una misma causa detrás: el cron de Moodle no está funcionando.

Moodle depende de un proceso programado, el cron, que ejecuta tareas en segundo plano: enviar notificaciones y correos, hacer los respaldos automáticos, calcular la finalización de cursos y muchas otras. Si el cron no corre, el sitio parece funcionar con normalidad por fuera, pero estas tareas dejan de hacerse, y los problemas aparecen de a poco, lo que hace difícil sospechar la causa.

Cómo darte cuenta de que el cron falla

  • Aparece un aviso en el panel de administración de que el script de mantenimiento del cron no se ejecutó en las últimas horas.
  • Los correos y notificaciones de Moodle no llegan, o llegan con mucho atraso.
  • Los respaldos automáticos de los cursos no se generan.
  • La finalización de actividades o de cursos no se actualiza.
  • Los alumnos reciben avisos fuera de tiempo, o dejan de recibirlos.

Cómo debería estar configurado

Moodle recomienda ejecutar el cron cada minuto, mediante el script de línea de comandos admin/cli/cron.php que está dentro de la instalación. En un servidor Linux se logra con una tarea programada (crontab) que llame a PHP con la ruta de ese script. El usuario que la ejecuta debería ser el mismo con el que trabaja el servidor web, para evitar problemas de permisos sobre los archivos de la carpeta de datos.

Un ejemplo orientativo de la línea del crontab, que tenés que adaptar a las rutas de tu servidor, es: * * * * * /usr/bin/php /ruta/a/moodle/admin/cli/cron.php.

Por qué se detiene

  • Nunca se configuró. En instalaciones nuevas o migradas es lo más frecuente: el sitio funciona, pero nadie programó el cron.
  • Rutas incorrectas. La ruta de PHP o la del script cambió tras una migración o una actualización de versión.
  • El hosting no permite ejecutarlo cada minuto. Algunos planes compartidos limitan la frecuencia de las tareas programadas.
  • Una tarea larga bloquea las siguientes. Si una tarea queda colgada o tarda demasiado, puede retrasar todo lo que viene después.
  • Errores de permisos. El cron corre con un usuario distinto al del servidor web y deja archivos que después no se pueden escribir.

Revisión en orden

  1. Entrá al panel de administración y mirá si hay un aviso sobre el cron. También podés revisar la sección de tareas del servidor para ver cuándo corrió por última vez cada tarea programada.
  2. Ejecutá el script manualmente desde la línea de comandos, con el mismo usuario que usa el servidor web, y leé qué mensajes devuelve. Si da error, el mensaje suele indicar la causa.
  3. Comprobá que exista la tarea programada en el servidor, que la ruta de PHP y la del script sean correctas y que se ejecute cada minuto.
  4. Revisá si hay tareas con fallos repetidos o muy lentas en el listado de tareas programadas.
  5. Verificá los permisos de la carpeta de datos, para confirmar que el usuario del cron pueda escribir en ella.

Qué no hacer

  • Ejecutar el cron con el usuario administrador del sistema (root). Los archivos que genere quedan con permisos que después el servidor web no puede escribir.
  • Ignorar el aviso del cron en el panel. Es la señal más temprana de que algo no está corriendo.
  • Desactivar tareas para que el aviso desaparezca. Se apaga el síntoma, pero el problema sigue.
  • Depender de que alguien visite el sitio para que se ejecute. El cron tiene que correr de forma programada y propia, no cuando entra un usuario.

Cómo evitar que se detenga otra vez

  • Verificar el cron después de cada actualización de Moodle, de PHP o de cualquier cambio de hosting.
  • Monitorear la fecha de la última ejecución y recibir una alerta si pasa demasiado tiempo.
  • Revisar de vez en cuando las tareas lentas o con fallos repetidos.
  • Documentar la ruta de PHP y del script usada en la tarea programada.
  • Elegir un hosting que permita tareas programadas cada minuto.

Una vez que el cron funciona, las tareas atrasadas empiezan a procesarse, así que es normal ver un pico de correos o de procesos al principio. Conviene monitorear que no se detenga de nuevo: es una de las revisiones clásicas dentro del mantenimiento de Moodle.

Si tu plataforma tiene muchos usuarios y no querés ocuparte de estos detalles, en el servicio de Moodle gerenciado nos encargamos del servidor y de que estas tareas corran.

Preguntas frecuentes

¿Listo para dar el salto digital?

Contanos tu idea y te mostramos cómo la hacemos realidad. Sin compromiso.