Tareas programadas: que algo se ejecute solo
Qué consigues: una orden que se ejecuta sola cada cierto tiempo —una limpieza, una copia, el cron de WordPress— sin que tengas que acordarte.
Antes de empezar
Ten claro qué orden quieres ejecutar y cada cuánto. Si la orden no funciona cuando la escribes tú a mano por SSH, tampoco va a funcionar programada: pruébala antes (Entrar por SSH a tu sitio).
Pasos
Menú Sitios → Tareas programadas.
Nueva tarea.
Orden — lo que se ejecuta. Rutas completas, siempre: una tarea programada no tiene el mismo entorno que tu terminal.
Cuándo — cinco casillas: minuto, hora, día, mes y día de la semana. El propio panel lo explica: «»» es «cada». Por ejemplo, /5 * * * * es cada 5 minutos y 0 2 * * * es todos los días a las 2:00».
Descripción — ponla. Dentro de seis meses no vas a acordarte de para qué era.
Crear tarea.
Las tareas se pueden pausar y activar desde su fila, sin borrarlas.
Horas que conviene elegir
No pongas todo a las 0:00 ni a las 3:00 en punto: es la hora a la que lo pone todo el mundo. Un minuto raro —las 3:17, por ejemplo— va igual de bien y se cruza con menos cosas.
Y no pongas cada minuto lo que no lo necesita. Una tarea pesada cada minuto se pisa a sí misma: arranca la siguiente antes de que acabe la anterior.
Cómo sabes que ha salido bien
No esperes a mañana. Pon la tarea cada 5 minutos temporalmente
(*/5 * * * *), espera a que pase una vez, comprueba que ha hecho lo suyo —el
fichero que crea, la fila que borra— y entonces ponle el horario de verdad.
Problemas frecuentes
- «El horario no es válido»
El mensaje es: usa números, el asterisco, rangos como
1-5o pasos como*/15. Casi siempre es un espacio de más o una coma donde iba un guion. Son cinco casillas, ni cuatro ni seis.- «Escribe la orden que tiene que ejecutarse»
El campo de la orden está vacío. Es el que dice qué se ejecuta, no la descripción.
- La tarea no hace nada y a mano sí funciona
Es el caso más común y casi siempre son las rutas. Escribe rutas completas para el programa y para los ficheros, porque una tarea programada no arranca desde tu carpeta ni conoce tus atajos.
- El cron de WordPress no se dispara si nadie entra en la web
Eso es así por diseño: el cron de WordPress se activa con las visitas. Si tu web tiene poco tráfico, programa aquí una tarea que llame a wp-cron.php cada 15 minutos y desactiva el cron interno.
- Me llegan correos cada vez que se ejecuta
Una tarea programada manda por correo lo que escribe en pantalla. Si no quieres esos avisos, manda la salida a un fichero de registro en vez de dejarla suelta.
- La tarea tarda más de lo que dura su intervalo
Acabarás con varias copias a la vez peleándose. Espacia el intervalo, o haz que la propia orden compruebe si ya hay otra en marcha antes de empezar.
- Quiero pararla un par de días sin perder la configuración
Usa «Pausar» en su fila. Se queda guardada y la vuelves a activar cuando quieras.
- Necesito que se ejecute el último día de cada mes
No hay una casilla para eso. Prográmala todos los días y que la propia orden compruebe si mañana es día 1; es la forma de siempre y funciona en todos los meses.