Diferencia entre revisiones de «Cron»

De MoodleDocs
Línea 54: Línea 54:


       */5 * * * * wget -q -O /dev/null <nowiki>http://example.com/moodle/admin/cron.php</nowiki>
       */5 * * * * wget -q -O /dev/null <nowiki>http://example.com/moodle/admin/cron.php</nowiki>
o también puede probar con el comando:
    */5 * * * * curl -s <nowiki>http://example.com/moodle/admin/cron.php</nowiki>
Normalmente, el comando "crontab" le enviará al editor 'vi'. Se entra en "modo de inserción" presionando "i", después teclee la línea de arriba, luego salga del modo de inserción presionando ESC. Se guardan los cambios y se sale tecleando ":wq", se puede salir también sin guardar usando ":q!" (sin las comillas).


Normalmente, el comando "crontab" le enviará al editor 'vi'. Se entra en "modo de inserción" presionando "i", después teclee la línea de arriba, luego salga del modo de inserción presionando ESC. Se guardan los cambios y se sale tecleando ":wq", se puede salir también sin guardar usando ":q!" (sin las comillas).
Normalmente, el comando "crontab" le enviará al editor 'vi'. Se entra en "modo de inserción" presionando "i", después teclee la línea de arriba, luego salga del modo de inserción presionando ESC. Se guardan los cambios y se sale tecleando ":wq", se puede salir también sin guardar usando ":q!" (sin las comillas).

Revisión del 16:40 4 oct 2012

Algunos módulos de Moodle requieren revisiones continuas para llevar a cabo determinadas tareas. Por ejemplo, Moodle necesita revisar los foros de discusión para poder enviar copias de los mensajes a las personas que están suscritas.

El script que hace todo esto está en el directorio admin, y se llama cron.php. Sin embargo, no puede funcionar por sí mismo, de manera que usted tiene que establecer un mecanismo en el que este script se ejecute regularmente (por ejemplo, cada cinco o diez minutos). Esto proporciona una señal de manera que el script pueda llevar a cabo funciones en determinados períodos definidos para cada módulo. Este tipo de mecanismo es lo que se denomina un servicio cron.

Tenga en cuenta que la máquina que ejecuta el cron no tiene que ser necesariamente la misma en la que está ejecutando Moodle. Por ejemplo, si usted tiene un servicio de alojamiento web limitado que no tiene cron, usted puede elegir ejecutar el cron en otro servidor o en su ordenador personal. Lo que importa es que el archivo cron.php sea llamado regularmente.

La carga de este script no es muy alta, así que un intervalo de 5 minutos es razonable generalmente, pero si esto le preocupa, puede ampliar el periodo de tiempo a 15 minutos o incluso 30 minutos. Es mejor no establecer un intervalo de tiempo demasiado largo, ya que el retrasar el envío de mensajes de correo puede reducir la actividad del curso.

Primero, compruebe que el script funcione directamente desde su navegador:

http://ejemplo.com/moodle/admin/cron.php

Ahora, usted necesita establecer alguna manera de ejecutar el script automática y regularmente.

En Windows

La forma más sencilla es usar este pequeño paquete moodle-cron-for-windows.zip que lo hace todo de una forma muy fácil instalando un pequeño servicio Windows. Ejecútelo y olvídese de él.

En servicios de hospedaje web

Su panel de control puede tener una página web que le permita establecer este proceso de cron. Por ejemplo, en el sistema Cpanel, busque un botón llamado "Tareas de Cron". Ahí podrá establecer los mismos comandos Unix que aparecen más abajo.

Usando la línea de comandos en Unix

Hay diferentes programas de línea de comandos que puede usar para llamar a la página desde la línea de comandos. Puede que no todos ellos estén disponibles en un determinado servidor.

Por ejemplo, puede usar una utilidad Unix como 'wget':

     wget -q -O /dev/null http://example.com/moodle/admin/cron.php

Observe en este ejemplo que la salida se elimina (en /dev/null).

Otra posible opción en aquellos casos que no funcione wget -q -O es:

     wget --spider http://example.com/moodle/admin/cron.php

Es lo mismo usando lynx:

     lynx -dump http://ejemplo.com/moodle/admin/cron.php > /dev/null

Como alternativa puede usar una versión de PHP compilada para ejecutarse desde la línea de comandos. La ventaja de hacer esto es que las entradas a su servidor web no se llenan con constantes solicitudes a cron.php. La desventaja es que necesitará tener acceso a una versión de línea de comandos de PHP.

     /opt/bin/php /web/moodle/admin/cron.php

Otra posible opción en aquellos casos que no funcione wget -q -O es: wget --spider http://example.com/moodle/admin/cron.php

Usando el programa "crontab" en Unix

Todo lo que Cpanel hace es proporcionar una interfaz web a una utilidad Unix conocida como «crontab». Si dispone de línea de comandos, puede establecer el «crontab» usted mismo usando el comando:

     crontab -e

y añadiendo una línea como la siguiente:

     */5 * * * * wget -q -O /dev/null http://example.com/moodle/admin/cron.php

o también puede probar con el comando:


    */5 * * * * curl -s http://example.com/moodle/admin/cron.php

Normalmente, el comando "crontab" le enviará al editor 'vi'. Se entra en "modo de inserción" presionando "i", después teclee la línea de arriba, luego salga del modo de inserción presionando ESC. Se guardan los cambios y se sale tecleando ":wq", se puede salir también sin guardar usando ":q!" (sin las comillas).

Normalmente, el comando "crontab" le enviará al editor 'vi'. Se entra en "modo de inserción" presionando "i", después teclee la línea de arriba, luego salga del modo de inserción presionando ESC. Se guardan los cambios y se sale tecleando ":wq", se puede salir también sin guardar usando ":q!" (sin las comillas).