Crear un cronjob o tarea programada (y qué hacer si no se ejecuta)
Con un cronjob (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 uno y qué hacer si no funciona.
Normas para los cronjobs
- Haga que una tarea se inicie como máximo una vez cada 10 minutos. Se lo pedimos a todos los clientes, ya que comparte el servidor con otros sitios web.
- Reparta los cronjobs a lo largo del tiempo y elija una hora tranquila, como las 03:17 en lugar de la medianoche en punto.
- No se permiten cronjobs pesados que sobrecarguen el servidor durante mucho tiempo. En el mismo servidor funcionan más sitios web. Si es necesario, detendremos un cronjob. Por ello, mantenga sus tareas breves y no las ejecute con más frecuencia de la necesaria.
Crear un cronjob
- 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 el comando, introduzca la ruta completa, por ejemplo:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Sustituya gebruiker por su nombre de usuario de DA. - Haga clic en Crear.

Correo después de cada cronjob
La salida de un cronjob se envía a la cuenta de correo predeterminada de su paquete; consulte La cuenta de correo predeterminada en DirectAdmin. También puede enviar la salida a una dirección propia con Enviar toda la salida de cron al correo. Si no desea recibir correo, haga clic en Evitar e-mails al crear la tarea, o añada detrás del comando:
>/dev/null 2>&1
Atención con los scripts PHP
Un script que se ejecuta desde un cronjob no sabe bajo qué dominio se ejecuta. $_SERVER['SERVER_NAME'] y $_SERVER['DOCUMENT_ROOT'] están vacíos, y un include con una ruta relativa puede fallar. Por ello, coloque al principio de su script:
$pad = '/home/gebruiker/domains/jouwdomein.nl/public_html'; $_SERVER['SERVER_NAME'] = 'jouwdomein.nl'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
¿Su cronjob no se ejecuta?
Revise estos puntos uno por uno:
- Lea la salida. Elimine temporalmente
>/dev/null 2>&1y consulte el correo en la cuenta de correo predeterminada, o configure una dirección propia. Allí suele indicarse exactamente qué falla. También puede escribir la salida en un archivo de registro añadiendo>> /home/gebruiker/cron-log.txt 2>&1detrás del comando. - Compruebe la ruta. El mensaje Could not open input file significa que la ruta al script no es correcta. Compruébelo en el Administrador de archivos: la ruta empieza por
/home/gebruiker/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 con otra versión, cámbiela en Select PHP version. - Pruebe el comando manualmente. Si tiene un paquete con Terminal, pegue allí el comando y observe qué ocurre; consulte Acceso SSH y el Terminal en DirectAdmin. Sin Terminal, abra el script en su navegador o llámelo en el cronjob mediante
curl --silent https://www.jouwdomein.nl/taak.php. - Compruebe los permisos. El script debe poder leerse: los archivos deben tener 644 y las carpetas 755. Consulte Permisos de archivos y carpetas (chmod).
- Compruebe la hora. Verifique en La tarea Cron se ejecutará: si la tarea se ejecuta cuando usted cree. Si hay un asterisco en el minuto, se ejecutará cada minuto. Eso es demasiado frecuente.
- Compruebe cuánto dura la tarea. Si una tarea tarda mucho o vuelve a iniciarse antes de que termine la anterior, puede bloquearse o hacer que su paquete alcance sus límites. En ese caso, reparta el trabajo en varias rondas.
date >> /home/gebruiker/cron-log.txt; delante de su comando.Consulte también en el manual de DirectAdmin: La cuenta de correo predeterminada de su paquete.
Explicación detallada con capturas de pantalla: Tareas Cron: ejecutar tareas automáticamente en el manual de DirectAdmin.
¿Quiere aprender más? Siga gratis el Curso de WordPress, lección 6.3 Imágenes, PHP y otras mejoras de velocidad.
