Tareas programadas (cron) en el hosting con DirectAdmin
Las tareas programadas están en las funciones avanzadas del panel, en Cron Jobs. Se cargan cinco campos —minuto, hora, día del mes, mes y día de la semana— más el comando. Para un WordPress con tráfico real conviene desactivar el cron interno y dispararlo desde acá cada cinco o diez minutos. Si no querés un correo por cada ejecución, mandá la salida a /dev/null. Probá siempre el comando a mano antes de programarlo.
Cargar una tarea
- Entrá al panel y abrí Cron Jobs, en las funciones avanzadas. En inglés, Cron Jobs.
- Completá los cinco campos de tiempo. El asterisco significa "todos".
- Escribí el comando completo, con la ruta absoluta del intérprete y del archivo.
- Agregá. La tarea queda activa y se puede editar o borrar desde la misma lista.
Los cinco campos
| Campo | Valores | Ejemplo |
|---|---|---|
| Minuto | 0 a 59 | */5 = cada cinco minutos |
| Hora | 0 a 23 | 3 = a las tres de la mañana |
| Día del mes | 1 a 31 | 1 = el primero de cada mes |
| Mes | 1 a 12 | * = todos |
| Día de la semana | 0 a 6, domingo es 0 | 1 = lunes |
La hora es la del servidor. Si necesitás que coincida con la hora de Argentina, revisá la zona horaria: hay una guía para eso.
Los tres casos que se usan siempre
- El cron de WordPress. WordPress ejecuta sus tareas cuando alguien visita el sitio, así que en un sitio con poco tráfico nunca corren y en uno con mucho corren de más. Se desactiva agregando
define('DISABLE_WP_CRON', true);enwp-config.phpy se programa acá cada cinco o diez minutos. - Una copia periódica. Un
mysqldumpa un archivo con la fecha, o untarde una carpeta, a una hora en que el sitio esté tranquilo. - Un script propio. Un PHP o un shell que hace lo tuyo: cerrar reservas vencidas, mandar un resumen, importar un archivo.
El correo de cada ejecución
Por defecto, el cron te manda por correo todo lo que el comando imprima. En una tarea que corre cada cinco minutos, eso son casi trescientos correos por día.
Para silenciar la salida normal pero seguir enterándote de los errores, terminá el comando así:
>/dev/nullY si tampoco querés los errores —cosa que no recomiendo, porque son justo lo que hay que mirar—:
>/dev/null 2>&1Probar antes de programar
La mitad de las tareas que "no corren" fallan porque la ruta está mal o porque el intérprete no es el que se creía. Si tenés acceso por SSH, ejecutá el comando tal cual lo vas a programar y mirá qué devuelve.
Sin SSH, una forma simple es programarla dentro de dos minutos y ver qué llega por correo. Después corregís la frecuencia definitiva.
Preguntas frecuentes
¿Cada cuánto puedo ejecutar una tarea?
Como mínimo cada un minuto, aunque en un hosting compartido conviene no bajar de cinco: una tarea pesada cada minuto afecta al resto del servidor y a tu propio sitio.
Programé la tarea y no pasa nada
Revisá tres cosas: la ruta absoluta del comando, los permisos de ejecución del script y el correo que manda el cron, que suele traer el error exacto. Si silenciaste la salida, sacale el >/dev/null mientras lo probás.
¿Qué ruta uso para PHP?
Conviene la ruta absoluta del binario, no php a secas, porque el cron corre con un entorno mínimo. En el panel, en la información del servidor, figura la ruta de la versión de PHP que estés usando.
¿Se puede programar algo para una sola vez?
El cron es para tareas repetidas. Para una sola vez, programala y borrala después, o usá at si tenés un VPS.
¿Las tareas siguen si cambio de plan?
Sí, quedan en la cuenta. Si migrás a otro servidor, revisá que las rutas absolutas sigan siendo válidas en el destino.
Seguí leyendo
Cómo programar tareas en Linux con cron y systemd
Qué significa cada campo de una línea de cron, horarios de ejemplo, los errores de siempre, cron en DirectAdmin y cómo correr un script al arrancar con systemd.
Bases de datos MySQL y phpMyAdmin en DirectAdmin
Crear una base y su usuario, encontrar los datos de conexión para WordPress, entrar a phpMyAdmin y hacer una copia antes de tocar nada.
Tecnologías discontinuadas y qué se usa hoy en su lugar
Outlook Express, ASP clásico, Flash, FrontPage, CentOS 6 y 7, trixbox, Shoutcast, Nagios, Webalizer: qué pasó con cada uno y cuál es el reemplazo.