Configurar servicio automatizado en Linux Ubuntu Server



No hablare mucho sobre las capacidades de Linux para automatización de un servicio, pues con el simple hecho de saber que puedes automatizar cualquier tarea  las posibilidades de lo que quieras hacer solamente se verán limitadas por tu mente, tu ingenio, tus necesidades y tu conocimiento.

En un Ubuntu Server y surgió la problemática de que no se envían las notificaciones via email de las participaciones en los foros, mensajes etc. del Moodle que tengo ahí instalado.

¿El problema? el cron de Moodle no estaba siendo llamado regularmente y por tanto muchas tareas no se estaban realizando,  para solucionar ello se debe configurar en el sistema en el que Moodle este instalado la llamada a dicho script. Existen varias formas de hacerlo en un servidor local para windows, Linux. (para servidores externos normalmente se soluciona mediante el cPanel ):

Me centrare unicamente para servidores Linux por ser la opción mas compleja

Soluciones: 

A.- La mas simple es llamando a la ruta en un navegador web http://tusitio/admin/cron.php con ello al instante se actualizara todo y se desencadenan los llamados, pero mmm esto no es viable ya que tenemos que hacerlo de forma manual cada que necesitemos actualizar  y desencadenar los procesos de notificaciones*
 *Existe un  sitio que nos permite hacer la llamada automatizada https://cron-job.org habrá que registrarse y añadir la tarea automatizada, es básicamente un servicio de cron externo. (no esta de mas conocerlo)

B.- Añadirlo a la linea de comandos del crontab (crontab es el archivo de configuración de cron en Linux) sea llamandolo con wget o con php

Método con wget

*/15 * * * * /usr/bin/wget http://tusitio/admin/cron.php
 
Método con php (recomendado )

*/15 * * * * /usr/bin/php  /path/to/moodle/admin/cli/cron.php

Para ello seguir al pie de la letra lo siguiente:

1.- Abrir consola en el servidor
2.- Teclear
sudo crontab -e
3.- Añadir la linea con el método elegido al archivo de configuración
4.- Guardar los cambios y salir.
5.- Reiniciar el demonio cron
service cron restart
Con esto las llamadas al script cron de moodle quedan automatizadas cada 15 minutos:



Mas información sobre cron:
https://es.wikipedia.org/wiki/Cron_%28Unix%29 
http://www.desarrollolibre.net/blog/tema/106/linux/ejecutar-script-automaticamente-con-cron-en-linux#.VeS4Z_Z_NBc
https://docs.moodle.org/25/en/Cron_with_Unix_or_Linux
http://www.forat.info/2008/10/programa-tareas-automaticas-con-crontab-backup/