Diferencia entre revisiones de «Cron»

De MoodleDocs
mSin resumen de edición
mSin resumen de edición
(No se muestran 31 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
{{Instalación de Moodle}}
{{Instalación de Moodle}}
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.
El proceso 'cron' de Moodle es un ''script'' PHP (parte de la instalación estándar de Moodle) que debe ejecutarse regularmente en segundo plano. El script cron de Moodle corre diferentes trabajos/tareas (''tasks'') 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.'''
'''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.  
Un programa especial (típicamente llamado - lo que no es de sorprender - 'cron') es usado para ejecutar el script de cron de Moodle a intervalos regulares. El script de cron de Moodle corre trabajos/tareas que incluyen el mandar correos, actualizar reportes de Moodle, canales RSS, completado de actividades, publicación de mensajes en foros y otros trabajos. Dado que los diferentes trabajos tienen diferentes horarios agendados, no todos los trabajos 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.  
Se recomienda que se ''ejecute el trabajo cron cada minuto'', pues así lo necesita la eliminación asincrónica de actividades al usar la [[Papelera de reciclaje]].
 
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. La mayoría de los sistemas de alojamiento web compartido usan CPanel para gestionar los sitios, y usualmente tendrán una sección para Cron Jobs (Trabajos Cron) en el panel.


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.   
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.   
Línea 15: Línea 17:


Esencialmente hay dos pasos para implementar  cron:
Esencialmente hay dos pasos para implementar  cron:
# identificar el comando correcto a correr
# identificar el comando correcto a ejecutar
# encontrar el lugar correcto en su sistema para poner el comando
# encontrar el lugar correcto en su sistema para poner el comando


Línea 22: Línea 24:
Moodle tiene dos diferentes formas para desplegar cron que usan diferentes scripts dentro de la instalación de Moodle. Éstos son como sigue...
Moodle tiene dos diferentes formas para desplegar cron que usan diferentes scripts dentro de la instalación de Moodle. Éstos son como sigue...


#El script CLI (''command line interpreter'' = intérprete de línea de comando). Éste estará en la ruta <pre>/ruta/hacia/moodle/admin/cli/cron.php</pre> 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  <pre>/usr/bin/php /ruta/hacia/moodle/admin/cli/cron.php</pre> Usted puede (y debería de) intentar ésto en su línea de comando para ver si funciona.  
# El script CLI (''command line interpreter'' = intérprete de línea de comando) estará en la ruta <pre>/ruta/hacia/moodle/admin/cli/cron.php</pre> Si tiene dudas, éste es el script correcto para utilizar. Éste necesita correrse por un programa 'PHP&nbsp;CLI' en su computadora. Así es que, el comando final puede parecerse a algo similar a  <pre>/usr/bin/php /ruta/hacia/moodle/admin/cli/cron.php</pre> Usted puede (y debería de) intentar ésto en su línea de comando para ver si funciona. '''ADVERTENCIA: Revise que su versión de PHP de línea-de-comando sea compatible con su versión elegida de Moodle. El programa de PHP de línea-de-comando es diferente del que está corriendo en su sitio web y no siempre es la misma versión.'''


# 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  <pre>/usr/bin/wget http://su.sitio.moodle/admin/cron.php</pre> É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.
# Si, por alguna razón Usted no puede correr el script de la Interfaz por Línea de Comando, hay una versión del scrpt basado en web. Tome nota de que ahora esto está deprecado y podría ser eliminado en futuras versiones de Moodle. El script basado en web necesita ejecutarse 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  <pre>/usr/bin/wget http://su.sitio.moodle/admin/cron.php</pre> Ésto tiene la ventaja de que se puede ejecutar desde *cualquier sitio*. Si Usted no puede lograr que cron funcione en su computadora, puede ejecutarlo en otro sitio.
 
===El comando cron de Moodle basado en web===
Si Usted tiene la opción, no use el cron basado en web. Es probable que sea eliminado en una versión futura de Moodle.
* A partir de Moodle 2.9, ya no puede invocarse el comando cron via web. Aparecerá el siguiente mensaje de error:
!!! Sorry, internet access to this page has been disabled by the administrator. !!!
(Lo sentimos, el acceso por Internet a esta pagina ha sido desactivado por el administrador.)
* Usted puede cambiar esto en 'Tablero ► Administración del sitio ► Seguridad ► Políticas del sitio' al desactivar la casilla de 'Ejecución de cron sólo mediante comandos'.
** Usted recibirá una advertencia de que  'El correr el cron desde un navegador web puede exponer información privilegiada a usuarios anónimos. Por esto, se recomienda solamente correr cron desde la línea de comando o configurarle una contraseña a cron para el acceso remoto..'
** Usted podrá entonces escribir una 'Contraseña de cron para acceso remoto'. Si este campo se deja vacío, no se necesita contraseña..
** Esto significa que el ''script'' de cron.php no puede correrse desde un navegador de Internet sin proporcionar la contraseña, empleando la siguiente sintaxis de URL:
  http://sitio.ejemplo.com/admin/cron.php?password=abretesesamo


=== Encontrando el lugar correcto para poner el comando ===
=== 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.
Este realmente depende del sistema que estés usando y es importante que encuentres y leas la documentación de la plataforma u hospedaje donde te encuentres. En la mayoría de los casos el lograr ejecutar cron consiste en establecer el comando correcto (arriba) y el tiempo en que ejecutar el comando en algún archivo. Esto puede ser a través de la interfaz del usuario o editando el archivo directamente.
 
Si estas usando la Línea de Comando, debes de asegurarte que el proceso de cron sea ejecutado con el usuario correcto, esto no es un problema para la versión web.


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.  
Ejemplo... instalando cron en Linux Ubuntu/Debian. Asumiendo que te encuentras como el usuario root.


Example... installing cron on Ubuntu/Debian Linux. Assuming logged in as root..
''Usa el comando crontab para abrir la ventana del editor para el usuario www-data. Este es el usuario en que Apache (el servidor web) se ejecuta en los sistemas basados en Debian''


''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''
<pre>
<pre>
$ crontab -u www-data -e
$ crontab -u www-data -e
</pre>
</pre>
''This will open an editor window. To run the cli cron script every 1 minute, add the line:''
''Esto abrirar una ventana del editor. Para ejecutar el cron en línea de comando cada minuto añade la línea:''
<pre>
<pre>
*/1 * * * * /usr/bin/php  /path/to/moodle/admin/cli/cron.php >/dev/null
* * * * * /usr/bin/php  /path/to/moodle/admin/cli/cron.php >/dev/null
</pre>
</pre>
NOTE: the final '''>/dev/null''' sends all the output to the 'bin' and stops you getting an email every 1 minute.
NOTA: El '''>/dev/null''' final envía todo el resultado del comando a nulo y evita que te se envíe un correo cada minuto; es útil quitarlo si no está funcionando como esperamos.


== Configuración de cron en su sistema ==
== Configuración de cron en su sistema ==
Línea 50: Línea 64:
*[https://docs.moodle.org/25/en/Cron_with_Unix_or_Linux Cron con Unix o Linux]- Servicios cron en sistemas operativos de varios sabores de UNIX y Linux.
*[https://docs.moodle.org/25/en/Cron_with_Unix_or_Linux Cron con Unix o Linux]- Servicios cron en sistemas operativos de varios sabores de UNIX y Linux.
*[https://docs.moodle.org/25/en/Cron_with_Windows_OS Cron con Windows] - Servicios cron en Windows
*[https://docs.moodle.org/25/en/Cron_with_Windows_OS Cron con Windows] - Servicios cron en Windows
*''Apple OSX'' - use el servicio incluido de 'crontab' que es exactamente el mismo que [https://docs.moodle.org/25/en/Cron_with_Unix_or_Linux Cron con Unix o Linux]. Sin embargo, Usted podría querer hacerlo 'a la manera de Apple' usando launchd - vea [https://docs.moodle.org/25/en/Cron_with_MAC_OS_X Cron con MAC OS X]
*''Apple OSX'' - use el servicio incluído de 'crontab' que es exactamente el mismo que [https://docs.moodle.org/25/en/Cron_with_Unix_or_Linux Cron con Unix o Linux]. Sin embargo, Usted podría querer hacerlo 'a la manera de Apple' usando launchd - vea [https://docs.moodle.org/25/en/Cron_with_MAC_OS_X Cron con MAC OS X]
*[https://docs.moodle.org/25/en/Cron_with_web_hosting_services Cron con servicios de alojamiento web]- Servicios cron en varios ejemplos de alojamiento web con terceros.
*[https://docs.moodle.org/25/en/Cron_with_web_hosting_services Cron con servicios de alojamiento web]- Servicios cron en varios ejemplos de alojamiento web con terceros.


Línea 59: Línea 73:
== Uso de servicios cron de terceros ==
== Uso de servicios cron de terceros ==
   
   
Besides using cron hosted on your own server, you may use third party cron service (usually called webcron):
Además de usar cron alojado en su propio servidor, Usted puede usar un servicio cron de terceros (lo que usualmente se llama webcron):
 
*[https://cron-job.org/ cron-job.org] es un servicio gratuito. (es posible tener cron de 1Minuto)


*[http://www.easycron.com EasyCron] - A webcron service provider that eliminates the need of crontab or other task schedulers to set cron job.
*[http://www.easycron.com EasyCron] - Un proveedor de servicio webcron que elimina la necesidad de crontab o algun otro agendador de tarea para configurar el trabajo de cron.


=== Configuraciones de cron en Moodle ===
=== Configuraciones de cron en Moodle ===
 
{{Pendiente de traducir}}
There are settings within Moodle that control aspects of cron operation:
An admin can set cron execution via command line only or a cron password for remote access in 'Site security settings' in the Site administration.
 
*[[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===
===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.
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==
==Trabajos agendados==
* 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.
An administrator can schedule cron tasks very precisely from Administration > Site administration > Server > Scheduled tasks, see [[Trabajos agendados]]


* 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 https://httpd.apache.org/docs/2.2/vhosts/index.html].)
==Correr cron para varios servidores Moodle==
* Tasks can run in parallel and processes use locking to prevent tasks from running at the same time which allows cron to be triggered from multiple web servers that serve the same Moodle instance.


* Si Usted tiene esta configuración, [https://moodle.org/mod/forum/discuss.php?d=238005 https://moodle.org/mod/forum/discuss.php?d=238005], entonces es un servidor web y una instancia de Moodle. Entonces un trabajo de cron es la respuesta correcta.
* If you are running different Moodle instances on the same server, then each Moodle instance needs a cron job. (Even a single Apache web server can run different Moodle instances on different domains by using its virtual hosts capability [https://httpd.apache.org/docs/2.2/vhosts/index.html https://httpd.apache.org/docs/2.2/vhosts/index.html].)


* Vea [https://moodle.org/mod/forum/discuss.php?d=242499 this forum thread].
== Depuración de Trabajos agendados ==


{{Moodle 2.7}}
Sometimes, a particular cron task may not be working correctly. In Moodle versions before 2.7 - any cron task that was throwing exceptions would prevent the rest of cron from running. The only way to monitor if cron was completing each time, was to add some automated checking of the output of running cron (e.g. searching for the string "Cron completed at ").
{{Nuevas características de 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. Vea [[Tareas agendadas]]
In Moodle 2.7 and later, a single failing scheduled task will not prevent the remaining tasks from completing. When any single scheduled task fails, it is marked as a failure, and scheduled to be reattempted. If the task keeps failing, the next scheduled time will be backed off until it is attempted at most once every 24 hours. But checking the [[Trabajos agendados]] admin page, you can see if any task is currently failing (it will have a non-zero fail delay - which is the number of seconds to wait before reattempting a failed task). A simple way to debug a failing task, is to run it immediately using the [[Administración_por_línea_de_comando#Trabajos_agendados|ejecutor de trabajos agendados CLI]] and monitor the output.
* 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'''.
 
== Depuración de tareas del sistema agendadas (''Debugging Scheduled Tasks'') ==
 
A veces, una tarea de cron en particular puede que no funcione correctamente. En las versiones anteriores a Moodle 2.7 - cualquier tarea de cron que estuviera lanzando excepciones impediría que corriera el resto del cron. La única manera de monitorear si es que cron estaba completándose cada vez, era añadiendo revisiones automáticas de la salida del cron en ejecución (por ejemplo, buscando la cadena de texto "Cron completed at ").
 
{{Moodle 2.7}}
En Moodle 2.7 y posteriores, una sola tarea del sistema agendada que falle no impedirá que las tareas restantes se completen. Cuando falla una sola tarea del sistema agendada, se marca como fallida y se agenda para que se re-intente. Si la tarea sigue fallando, la siguiente hora agendada se retrasará hasta que solamente se se intente un máximo de una vez cada 24 horas. Pero revisando la página de [[Tareas agendadas]], Usted puede ver si actualmente hay una tarea que esté fallando (tendría un retraso de falla de no-cero  - lo que es el número de segundos a esperar antes de re-intentar una tarea fallida). Una manera simple de depurar una tarea fallida, es correrla inmediatamente usando  [[Administración_por_línea_de_comando#Tareas_agendadas|ejecutor de tareas agendadas por interfaz por línea de comando (''cli scheduled task runner'')]] y monitorear la salida.


==Vea también==
==Vea también==
* [[Cron en servidores compartidos en 1and1]]
* [http://www.coursebit.net/moodle-cron-job/ All About the Moodle Cron Job]
* [http://www.coursebit.net/moodle-cron-job/ All About the Moodle Cron Job]
* [[Tareas agendadas]]
* [[Trabajos agendados]]
* [http://en.wikipedia.org/wiki/Cron Wikipedia article on cron function]
* [http://en.wikipedia.org/wiki/Cron Wikipedia article on cron function]
* [[Cron (documentación muy antigua)]] en español
* [[Cron (documentación muy antigua)]] en español
* MDL-50694 - Cron message "The operation timed out while waiting for a lock" isn't really an error


Using Moodle forum discussions:
Using Moodle forum discussions:
Línea 111: Línea 114:
*[http://moodle.org/mod/forum/discuss.php?d=117168 Visibility of cron.php]
*[http://moodle.org/mod/forum/discuss.php?d=117168 Visibility of cron.php]
*[http://moodle.org/mod/forum/discuss.php?d=139263#p609060 How to log the output of a Scheduled Task on Windows] - this discussion explains a nice trick that can be very useful when you are experiencing problems with your Windows Scheduled Task and you need to log the output of the Scheduled Task to a log file.
*[http://moodle.org/mod/forum/discuss.php?d=139263#p609060 How to log the output of a Scheduled Task on Windows] - this discussion explains a nice trick that can be very useful when you are experiencing problems with your Windows Scheduled Task and you need to log the output of the Scheduled Task to a log file.
*[https://moodle.org/mod/forum/discuss.php?d=324443 Cron Lock]


[[en:Cron]]
[[en:Cron]]
[[fr:Cron]]
[[fr:Cron]]
[[ja:Cron]]
[[ja:Cron]]
[[Category:Moodle 2.7]]

Revisión del 08:28 23 ene 2020

El proceso 'cron' de Moodle es un script PHP (parte de la instalación estándar de Moodle) que debe ejecutarse regularmente en segundo plano. El script cron de Moodle corre diferentes trabajos/tareas (tasks) 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 ejecutar el script de cron de Moodle a intervalos regulares. El script de cron de Moodle corre trabajos/tareas que incluyen el mandar correos, actualizar reportes de Moodle, canales RSS, completado de actividades, publicación de mensajes en foros y otros trabajos. Dado que los diferentes trabajos tienen diferentes horarios agendados, no todos los trabajos correrán en Moodle cuando se dispare el script de cron.

Se recomienda que se ejecute el trabajo cron cada minuto, pues así lo necesita la eliminación asincrónica de actividades al usar la Papelera de reciclaje.

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. La mayoría de los sistemas de alojamiento web compartido usan CPanel para gestionar los sitios, y usualmente tendrán una sección para Cron Jobs (Trabajos Cron) en el panel.

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 ejecutar
  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) 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. ADVERTENCIA: Revise que su versión de PHP de línea-de-comando sea compatible con su versión elegida de Moodle. El programa de PHP de línea-de-comando es diferente del que está corriendo en su sitio web y no siempre es la misma versión.
  1. Si, por alguna razón Usted no puede correr el script de la Interfaz por Línea de Comando, hay una versión del scrpt basado en web. Tome nota de que ahora esto está deprecado y podría ser eliminado en futuras versiones de Moodle. El script basado en web necesita ejecutarse 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 ejecutar desde *cualquier sitio*. Si Usted no puede lograr que cron funcione en su computadora, puede ejecutarlo en otro sitio.

El comando cron de Moodle basado en web

Si Usted tiene la opción, no use el cron basado en web. Es probable que sea eliminado en una versión futura de Moodle.

  • A partir de Moodle 2.9, ya no puede invocarse el comando cron via web. Aparecerá el siguiente mensaje de error:
!!! Sorry, internet access to this page has been disabled by the administrator. !!! 
(Lo sentimos, el acceso por Internet a esta pagina ha sido desactivado por el administrador.)
  • Usted puede cambiar esto en 'Tablero ► Administración del sitio ► Seguridad ► Políticas del sitio' al desactivar la casilla de 'Ejecución de cron sólo mediante comandos'.
    • Usted recibirá una advertencia de que 'El correr el cron desde un navegador web puede exponer información privilegiada a usuarios anónimos. Por esto, se recomienda solamente correr cron desde la línea de comando o configurarle una contraseña a cron para el acceso remoto..'
    • Usted podrá entonces escribir una 'Contraseña de cron para acceso remoto'. Si este campo se deja vacío, no se necesita contraseña..
    • Esto significa que el script de cron.php no puede correrse desde un navegador de Internet sin proporcionar la contraseña, empleando la siguiente sintaxis de URL:
 http://sitio.ejemplo.com/admin/cron.php?password=abretesesamo

Encontrando el lugar correcto para poner el comando

Este realmente depende del sistema que estés usando y es importante que encuentres y leas la documentación de la plataforma u hospedaje donde te encuentres. En la mayoría de los casos el lograr ejecutar cron consiste en establecer el comando correcto (arriba) y el tiempo en que ejecutar el comando en algún archivo. Esto puede ser a través de la interfaz del usuario o editando el archivo directamente.

Si estas usando la Línea de Comando, debes de asegurarte que el proceso de cron sea ejecutado con el usuario correcto, esto no es un problema para la versión web.

Ejemplo... instalando cron en Linux Ubuntu/Debian. Asumiendo que te encuentras como el usuario root.

Usa el comando crontab para abrir la ventana del editor para el usuario www-data. Este es el usuario en que Apache (el servidor web) se ejecuta en los sistemas basados en Debian

$ crontab -u www-data -e

Esto abrirar una ventana del editor. Para ejecutar el cron en línea de comando cada minuto añade la línea:

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

NOTA: El >/dev/null final envía todo el resultado del comando a nulo y evita que te se envíe un correo cada minuto; es útil quitarlo si no está funcionando como esperamos.

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

Además de usar cron alojado en su propio servidor, Usted puede usar un servicio cron de terceros (lo que usualmente se llama webcron):

  • cron-job.org es un servicio gratuito. (es posible tener cron de 1Minuto)
  • EasyCron - Un proveedor de servicio webcron que elimina la necesidad de crontab o algun otro agendador de tarea para configurar el trabajo de cron.

Configuraciones de cron en Moodle

Nota: Pendiente de Traducir. ¡Anímese a traducir esta página!.     ( y otras páginas pendientes)

An admin can set cron execution via command line only or a cron password for remote access in 'Site security settings' in the Site administration.

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.

Trabajos agendados

An administrator can schedule cron tasks very precisely from Administration > Site administration > Server > Scheduled tasks, see Trabajos agendados

Correr cron para varios servidores Moodle

  • Tasks can run in parallel and processes use locking to prevent tasks from running at the same time which allows cron to be triggered from multiple web servers that serve the same Moodle instance.
  • If you are running different Moodle instances on the same server, then each Moodle instance needs a cron job. (Even a single Apache web server can run different Moodle instances on different domains by using its virtual hosts capability https://httpd.apache.org/docs/2.2/vhosts/index.html.)

Depuración de Trabajos agendados

Sometimes, a particular cron task may not be working correctly. In Moodle versions before 2.7 - any cron task that was throwing exceptions would prevent the rest of cron from running. The only way to monitor if cron was completing each time, was to add some automated checking of the output of running cron (e.g. searching for the string "Cron completed at ").

In Moodle 2.7 and later, a single failing scheduled task will not prevent the remaining tasks from completing. When any single scheduled task fails, it is marked as a failure, and scheduled to be reattempted. If the task keeps failing, the next scheduled time will be backed off until it is attempted at most once every 24 hours. But checking the Trabajos agendados admin page, you can see if any task is currently failing (it will have a non-zero fail delay - which is the number of seconds to wait before reattempting a failed task). A simple way to debug a failing task, is to run it immediately using the ejecutor de trabajos agendados CLI and monitor the output.

Vea también

Using Moodle forum discussions: