Diferencia entre revisiones de «Cron»

De MoodleDocs
m (tidy up)
m (tidy up)
Línea 82: Línea 82:
* Vea [https://moodle.org/mod/forum/discuss.php?d=242499 this forum thread].
* Vea [https://moodle.org/mod/forum/discuss.php?d=242499 this forum thread].


{{Moodle 2.7}}
==Cron en Moodle 2.7+==
Cron ha recibido una [[Notas_de_Moodle_2.7| actualización principal]] y ahora tiene soporte tanto para tareas agendadas y ad-hoc - MDL-25499. Los beneficios de estos cambios son:
* La agenda para cada tarea puede configurarse por el administrador
* Las tareas pueden correr en paralelo
* Los procesos de Cron usan bloqueo para evitar que la misma tarea se corra al mismo tiempo por diferentes procesos
Un resultado de esto es que cada cron se puede correr mucho más frecuentemente, lo que significa (por ejemplo) que las publicaciones de foro pueden enviarse más pronto. Los administradores pueden mantener al Cron corriendo con la misma agenda de antes, pero se les recomienda encarecidamente que aumenten la frecuencia de corrida de cron a por lo menos una vez por minuto.


==Vea también==
==Vea también==
Línea 167: Línea 176:
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).


{{Moodle 2.7}}
==Cron en Moodle 2.7+==
Cron ha recibido una [[Notas_de_Moodle_2.7| actualización principal]] y ahora tiene soporte tanto para tareas agendadas y ad-hoc - MDL-25499. Los beneficios de estos cambios son:
* La agenda para cada tarea puede configurarse por el administrador
* Las tareas pueden correr en paralelo
* Los procesos de Cron usan bloqueo para evitar que la misma tarea se corra al mismo tiempo por diferentes procesos
Un resultado de esto es que cada cron se puede correr mucho más frecuentemente, lo que significa (por ejemplo) que las publicaciones de foro pueden enviarse más pronto. Los administradores pueden mantener al Cron corriendo con la misma agenda de antes, pero se les recomienda encarecidamente que aumenten la frecuencia de corrida de cron a por lo menos una vez por minuto.





Revisión del 01:15 22 abr 2014

Nota: Pendiente de ACTUALIZAR esta traducción respecto a la página original en inglés (ver enlace hacia English en el cuadro abajo a la derecha).     (otras páginas pendientes)

El proceso 'cron' de Moodle es un script PHP (parte de la instalación estándar de Moodle) que debe correrse regularmente en el fondo. El script cron de Moodle corre diferentes tareas a diferentes intervalos agendados.

IMPORTANTE: No se salte la configuración del proceso de cron en su servidor de Moodle. Su sitio no funcionará correctamente sin él.

Un programa especial (típicamente llamado - lo que no es de sorprender - 'cron') es usado para correr el script de cron de Moodle a intervalos regulares. El script de cron de Moodle corre tareas que incluyen el mandar correos, actualizar reportes de Moodle, canales RSS, completado de actividades, publicación de mensajes en foros y otras tareas. Dado que las diferentes tareas tienen diferentes horarios agendados, no todas las tareas correrán en Moodle cuando se dispare el script de cron.

El programa cron (que corre el script de Moodle) es una parte del núcleo de los sistemas basados en Unix (incluyendo Linux y OSX) que se usa para correr todos los tipos de servicios dependientes del tiempo (hora). En Windows, la solución más simple es crear una tarea en el Administrador de tareas de windows ( Windows Task Scheduler ) y configurarla para que corra a intervalos regulares. En alojamientos compartidos, Usted debería de encontrar la documentación (o pedir soporte) acerca de cómo se configura cron.

Esencialmente, la tarea involucra el añadir un solo comando (instrucción/órden) a la lista de actividades de cron en su sistema. En sistemas basados en Unix, esta lista es un archivo llamado 'crontab' que todos los usuarios tienen.

Discusión general

Vea las secciones más adelante para su tipo de servidor; ésta sección contiene un poco de información general introductoria.

Esencialmente hay dos pasos para implementar cron:

  1. identificar el comando correcto a correr
  2. encontrar el lugar correcto en su sistema para poner el comando

Elaboración del comando cron de Moodle

Moodle tiene dos diferentes formas para desplegar cron que usan diferentes scripts dentro de la instalación de Moodle. Éstos son como sigue...

  1. El script CLI (command line interpreter = intérprete de línea de comando). Éste estará en la ruta
    /ruta/hacia/moodle/admin/cli/cron.php
    Si tiene dudas, éste es el script correcto para utilizar. Éste necesita correrse por un programa 'PHP CLI' en su computadora. Así es que, el comando final puede parecerse a algo similar a
    /usr/bin/php /ruta/hacia/moodle/admin/cli/cron.php
    Usted puede (y debería de) intentar ésto en su línea de comando para ver si funciona.
  1. El script basado en web. Éste necesita correr desde un navegador web y estará accesible mediante una URL web parecida a http://su.sitio.moodle/admin/cron.php. Usted puede encontrar un navegador web basado en línea de comando (por ejemplo, wget) por lo que el comando final podría parecerse a
    /usr/bin/wget http://su.sitio.moodle/admin/cron.php
    Ésto tiene la ventaja de que se puede correr desde *cualquier sitio*. Si Usted no puede lograr que cron funcione en su computadora, puede correrlo en otro sitio.

Encontrando el lugar correcto para poner el comando

This really does depend on the system you are using and you should find and read the documentation for your platform or hosting. In most cases getting the Moodle cron to run consists of establishing the correct command (above) and then adding it, and the time to run the command, to some sort of file. This might be either through a specific user interface or by editing the file directly.

If using the CLI version you also need to make sure that the cron process is run as the correct user. This is not an issue with the web version.

Example... installing cron on Ubuntu/Debian Linux. Assuming logged in as root..

use the crontab command to open a crontab editor window for the www-data user. This is the user that Apache (the web server) runs as on Debian based systems

$ crontab -u www-data -e

This will open an editor window. To run the cli cron script every 15 minutes, add the line:

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

NOTE: the final >/dev/null sends all the output to the 'bin' and stops you getting an email every 15 minutes.

Configuración de cron en su sistema

Elija la información para su tipo de servidor:

Aquí hay más instrucciones para hosts específicos (por favor revise que estén actualizados):

Uso de servicios cron de terceros

Besides using cron hosted on your own server, you may use third party cron service (usually called webcron):

  • EasyCron - A webcron service provider that eliminates the need of crontab or other task schedulers to set cron job.

Configuraciones de cron en Moodle

There are settings within Moodle that control aspects of cron operation:

  • Configuraciones de cron - Contraseña y configuraciones de CLI (Command Line Interfase= Interfase por Línea de Comando) ) de los procesos cron de Moodle

Cron remoto

Using the 'web based' version of cron it is perfectly ok to place the cron process on a different machine to the Moodle server. For example, the cron service on a Unix server can invoke the cron web 'page' on a Windows based Moodle server.

Cron para múltiples servidores Moodle

  • Si ambos servidores son servidores web, y en conjunto sirven solamente a una instancia de Moodle (en una especie de cluster), entonces solamente un servidor debería de correr el trabajo de cron.
  • Si dos servidores corren diferentes instancias de Moodle, entonces cada instancia necesita un trabajo de cron. (Hasta un sencillo servidor Apache puede correr diferentes instancias de Moodle en dominios diferentes al usar su capacidad de hosts virtuales (https://httpd.apache.org/docs/2.2/vhosts/index.html.)

Moodle 2.7

Cron en Moodle 2.7+

Cron ha recibido una actualización principal y ahora tiene soporte tanto para tareas agendadas y ad-hoc - MDL-25499. Los beneficios de estos cambios son:

  • La agenda para cada tarea puede configurarse por el administrador
  • Las tareas pueden correr en paralelo
  • Los procesos de Cron usan bloqueo para evitar que la misma tarea se corra al mismo tiempo por diferentes procesos

Un resultado de esto es que cada cron se puede correr mucho más frecuentemente, lo que significa (por ejemplo) que las publicaciones de foro pueden enviarse más pronto. Los administradores pueden mantener al Cron corriendo con la misma agenda de antes, pero se les recomienda encarecidamente que aumenten la frecuencia de corrida de cron a por lo menos una vez por minuto.

Vea también

Using Moodle forum discussions:



DOCUMENTACIÓN MUY ANTIGUA

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).