Crear una tarea cron (y qué hacer si no se ejecuta)
Con una tarea cron (en DirectAdmin: Tareas Cron) puede hacer que un script se ejecute automáticamente a horas fijas, por ejemplo cada noche. A continuación le explicamos cómo crear una y qué hacer si no funciona.
Reglas para las tareas cron
- En Webhost One y Webhost Two, una tarea puede iniciarse como máximo una vez cada 10 minutos, para todas sus tareas en conjunto.
- En los paquetes Power Webhost, las tareas pueden ejecutarse con más frecuencia.
- Reparta varias tareas cron a lo largo del tiempo y elija un horario tranquilo, como las 03:17 en lugar de justo a medianoche.
- No se permiten tareas cron pesadas que sobrecarguen el servidor durante mucho tiempo. En el mismo servidor se alojan más sitios web. Si es necesario, detendremos una tarea cron. Por eso, mantenga sus tareas cortas y no las ejecute con más frecuencia de la necesaria.
Crear una tarea cron
- Inicie sesión en DirectAdmin y, en Funciones Avanzadas, haga clic en Tareas Cron.
- Haga clic en Crear Tarea Cron.
- Indique el minuto, la hora, el día, el mes y el día de la semana. Indique siempre el minuto con un número, no con un asterisco, de lo contrario la tarea se ejecutará cada minuto.
- En la orden, indique la ruta completa, por ejemplo:
/usr/local/bin/php -q /home/usuario/domains/sudominio.nl/public_html/tarea.php
Sustituya usuario por su nombre de usuario de DA. - Haga clic en Crear.

Correo tras cada tarea cron
El resultado de una tarea cron se envía a la cuenta de correo electrónico predeterminada de su paquete, consulte La cuenta de correo electrónico predeterminada en DirectAdmin. También puede enviar el resultado a una dirección propia con Enviar toda la salida de cron al correo electrónico. Si no desea recibir correos, haga clic al crear la tarea en Evitar correos electrónicos, o añada al final de la orden:
>/dev/null 2>&1
Atención con los scripts PHP
Un script que se ejecuta desde una tarea cron no sabe bajo qué dominio se está ejecutando. $_SERVER['SERVER_NAME'] y $_SERVER['DOCUMENT_ROOT'] están vacíos, y un include con una ruta relativa puede fallar. Por ello, añada al principio de su script:
$ruta = '/home/usuario/domains/sudominio.nl/public_html'; $_SERVER['SERVER_NAME'] = 'sudominio.nl'; $_SERVER['DOCUMENT_ROOT'] = $ruta; set_include_path($ruta . PATH_SEPARATOR . get_include_path());
¿Su tarea cron no se ejecuta?
Repase estos puntos uno por uno:
- Lea el resultado. Elimine temporalmente
>/dev/null 2>&1y consulte el correo en la cuenta de correo electrónico predeterminada, o configure una dirección propia. Allí suele indicarse exactamente qué está fallando. También puede escribir el resultado en un archivo de registro añadiendo al final de la orden>> /home/usuario/cron-log.txt 2>&1. - Compruebe la ruta. El mensaje Could not open input file significa que la ruta al script es incorrecta. Consulte en el Administrador de Archivos: la ruta comienza con
/home/usuario/domains/. - Compruebe la versión de PHP. Con
/usr/local/bin/php, la tarea utiliza la misma versión de PHP que su sitio web. Si su script solo funciona en otra versión, ajústelo en Select PHP version. - Pruebe la orden manualmente. Si tiene un paquete con Terminal, pegue la orden allí y compruebe qué ocurre, consulte Abrir SSH o la Terminal en DirectAdmin. Sin Terminal, abra el script en su navegador, o invóquelo en la tarea cron mediante
curl --silent https://www.sudominio.nl/tarea.php. - Compruebe los permisos. El script debe ser legible: los archivos deben estar en 644 y las carpetas en 755. Consulte Permisos de archivos y carpetas (chmod).
- Compruebe el horario. Verifique en La tarea cron se ejecutará: si la tarea se ejecuta cuando usted cree. Si aparece un asterisco en el minuto, se ejecuta cada minuto y puede ser detenida.
- Compruebe el límite del paquete. Si la tarea se ejecuta con más frecuencia de la que permite su paquete, o tarda demasiado, se interrumpirá. En ese caso, reparta el trabajo en varias rondas.
date >> /home/usuario/cron-log.txt; antes de su orden.Consulte también en el manual de DirectAdmin: La cuenta de correo electrónico predeterminada de su paquete.
Explicación detallada con capturas de pantalla: Tareas Cron: ejecutar tareas automáticamente en el manual de DirectAdmin.
