cron

  • El proceso "cron" de Moodle es un script PHP (parte de la instalación base) que debe ser ejecutado a intervalos regulares. Este script lleva a cabo diferentes tareas programadas en diferentes intervalos de tiempo (enviar mails, actualizar reportes de Moodle, RSS feeds, completitud de actividades y notificaciones de mensajes en foros, entre otras). Es importante que este proceso se configure correctamente, de lo contrario el sitio Moodle no funcionará de forma adecuada.

    En sistemas operativos de la familia Unix (Linux, *BSD), este script se programa desde cron, por ejemplo en el crontab del usuario con el que corre Apache (www-data en Debian y derivados). Debido a que diferentes tareas tienen intervalos de tiempo diferentes, no todas se ejecutan cada vez que se dispara el script cron.php desde cron.

  • La semana pasada la persona responsable de la administración de la plataforma Moodle de nuestra institución me comentó que estaban teniendo problemas con el envío de mails de notificaciones de los foros. Simplemente ni estaba llegando ninguna notificación de novedades en los foros. Pero lo más extraño era que el resto del envío de mails de Moodle (por ejemplo recupero de contraseñas de usuarios) sí estaban funcionando, lo cual descartaba cualquier tipo de problema con el servidor de correo.

  • Al programar una tarea con cron que ejecute ciertas tareas administrativas utilizando sudo desde una cuenta de usuario no privilegiada, es posible encontrarse con este error:

    sudo: sorry, you must have a tty to run sudo
  • En GNU/Linux, el programa cron es un demonio (o "servicio", como prefieran llamarle) para ejecutar tareas programadas, llamadas "cronjobs". En ocasiones puede sucedernos que creamos un cronjob, esperamos su ejecución programada, y en el log (/var/log/cron si se trata de Red Hat/Fedora/CentOS o /var/log/syslog si se trata de una distribución basada en Debian) nos encontramos con diferente tipo de errores, por ejemplo: "(CRON) bad command", "/bin/sh: Desktop: command not found", "Error: bad username; while reading" o "/bin/sh: root: command not found".

    Todos estos mensajes de error se producen cuando tenemos un problema en la sintaxis del cronjob.

  • Me pasó esto en un servidor Debian, y me volvió loco durante varios días, hasta que logré descubrir qué estaba pasando. run-parts es una herramienta utilizada por crond en sistemas Debian y derivados para correr todos los scripts en los directorios de cron /etc/crond.*/.