Ver planes
ESEN

Tareas programadas (cron) en el hosting con DirectAdmin

· 6 min de lectura · por el equipo técnico de VPS Argentina

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

  1. Entrá al panel y abrí Cron Jobs, en las funciones avanzadas. En inglés, Cron Jobs.
  2. Completá los cinco campos de tiempo. El asterisco significa "todos".
  3. Escribí el comando completo, con la ruta absoluta del intérprete y del archivo.
  4. Agregá. La tarea queda activa y se puede editar o borrar desde la misma lista.

Los cinco campos

CampoValoresEjemplo
Minuto0 a 59*/5 = cada cinco minutos
Hora0 a 233 = a las tres de la mañana
Día del mes1 a 311 = el primero de cada mes
Mes1 a 12* = todos
Día de la semana0 a 6, domingo es 01 = 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); en wp-config.php y se programa acá cada cinco o diez minutos.
  • Una copia periódica. Un mysqldump a un archivo con la fecha, o un tar de 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/null

Y si tampoco querés los errores —cosa que no recomiendo, porque son justo lo que hay que mirar—:

>/dev/null 2>&1

Probar 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