Cuando tenemos que realizar acciones periódicamente en nuestro sitio web o queremos hacerlas de forma automática la mayoría de los servidores ofrecen la herramienta de Tareas Programadas o Tareas Cron. Aquí tienes todo lo que necesitas saber para dominarlas.
¿En qué consiste una tarea programada?
Una tarea programada no es más que decirle a tu servidor web que tiene que ejecutar un comando en un momento determinado. Así por ejemplo, podemos configurar nuestra tarea programada para que visite una página web o nos envíe un fichero de nuestro sitio por correo electrónico.
Partes de una tarea programada
Aunque los servidores web tienen interfaces más o menos amigables para configurar las tareas, internamente todas las tareas tienen esta forma:
[Programación temporal] [comando]
Programación temporal
En esta parte de la configuración podemos definir cuándo queremos que se ejecute nuestra tarea incluso cómo queremos que se repita. Para conseguir esto podemos indicar los minutos, la hora, el día, el mes e incluso el día de la semana usando números de esta forma:
Minutos (41) Hora (13) Día (24) Mes (12) Día de la semana (0)
Por ejemplo:
41 13 24 12 0 -> Tarea que se ejecutará el domingo 24 de diciembre a las 13:41 (si no fuera domingo el 24 de diciembre del año en curso, no se ejecutaría este año).
Cuando quieras indicar que se ejecute cualquiera que sea estos valores usaremos un asterisco *. Algunos ejemplos:
Tareas que se ejecutan una vez cada hora:
15 * * * * -> Esta tarea se ejecutará a y cuarto cada hora todos los días de la semana
Tareas que se ejecutan una vez a la semana:
30 23 * * 7 -> Esta tarea se ejecutará todos los domingos a las once y media.
Tareas que se ejecutan los día 1 de cada mes sólo si caen en lunes:
14 1 1 * 1 -> Esta tarea se ejecutará todos los día 1 de cada mes que sean lunes a la una y catorce minutos de la madrugada
Este sistema ya es bastante flexible, pero a veces queremos afinar un poco más la periodicidad, para eso usamos fracciones:
Tarea que se ejecuta cada 5 minutos:
*/5 * * * * -> Esta tarea se ejecutará cada 5 minutos en nuestro servidor, sin importar día, ni mes, ni hora.
También podemos indicar varios valores para una de las variables separando por comas, por ejemplo para que una tarea se repita en varios días:
Tarea que se ejecuta los días 1, 15 y 30 de cada mes:
25 4 1,15,30 * * -> Tarea que se ejecutará los días uno, quince y treinta de cada mes a las cuatro y veinticinco de la madrugada.
Tarea que se ejecuta los martes y los jueves:
15 * * * 2,4 -> Tarea que se ejecutará todos los martes y los jueves quince minutos pasada la hora en punto
Como puedes ver tienen una flexibilidad enorme y prácticamente podrás configurar la periodicidad que necesites.
Tareas programadas en CPanel
Los servidores web suelen tener un panel de administración para que puedas gestionar tu sitio web. Este panel puede ser CPanel o Plesk o algún gestor personalizado. Si utilizas cPanel tendrás que buscar el botón de “Trabajos de Cron” (o “Cron Jobs” si no está traducido) en tu cPanel y una vez que pinches verás una panel de configuración parecido a este:
En la primera parte puedes definir a qué dirección se enviará un email cuando se ejecute una tarea programada. Esto es muy útil para recibir información de lo que ha pasado al ejecutar la tarea, aunque para tareas que se ejecutan muy a menudo puede ser problemático. En cPanel la configuración de los avisos de email es global para todas las tareas programadas.
En la segunda parte es donde puedes definir la tarea cron. En cada una de las casillas puedes definir la configuración de los minutos, horas, días... tal y como hemos visto antes, o usar los atajos de las casillas de al lado para elegir las configuraciones más comunes.
Finalmente podemos poner el comando a ejecutar.
El la última parte de la página podéis ver las tareas cron que hay definidas actualmente y podéis editarlas o borrarlas.
Tareas Programadas en Plesk
Si usas una versión antigua de Plesk la configuración es muy parecida a la de CPanel. No obstante puedes pedirle a tu servidor que actualice a la última versión (este cambio aparece a partir de Plesk 12.5) y así podrás disfrutar de las ventajas siguientes.
Lo primero que puedes ver en la pantalla para añadir una tarea programada es que puedes elegir qué tipo de acción quieres ejecutar:
- Ejecutar un comando
- Obtener una URL
- Ejecutar un script de PHP
Esto facilita muchísimo la gestión ya que por ejemplo, para obtener una URL en estas tareas programadas, no siempre se utiliza el mismo comando, además de que tienes que conocer cuáles son estos comandos. Pasa algo parecido con la parte de scripts PHP.
En función de la opción que elijáis, el campo Comando cambiará al campo URL o script, y tendréis que poner lo que corresponda en cada caso.
Al igual que pasaba con cPanel, podéis elegir cuándo se ejecutará la tarea cron, aunque en este caso la interfaz es mucho más intuitiva. En el campo de configuración elegiremos la periodicidad y la interfaz se irá adaptando para que elijamos qué días se puede cambiar. Como último recurso, si no estamos contentos con las opciones que tenemos, nos ofrece la opción de configuración al más puro estilo CRON.
En esta nueva interfaz vemos las 2 grandes ventjas de PlESK sobre CPanel. Por un lado, podemos definir cuándo y a qué dirección enviar las notificaciones individualmente para cada tarea. Esto es muy útil cuando configuramos tareas nuevas ya que podemos indicar que siempre nos envíe un email con estas tareas y cuando las hayamos depurado, podremos indicar que se envíen sólo cuando hay errores (o nunca).
Por otro lado la otra opción más útil de las tareas programadas con PLESK es que permiten probar las tareas en ese mismo instante pinchando en el botón Ejecutar ahora y podremos ver si hay errores en nuestra tarea o no.
En cualquier caso tanto si usas PLESK o CPanel con este pequeño tutorial podrás configurar sin problemas las tareas programadas en tu servidor.
¡Gracias a CComment! por facilitar los comentarios en ManualesJoomla.es!