Hosting y Servidor Dedicado Gestionado

Las tareas cron son una herramienta potente para automatizar tareas recurrentes. Sin embargo, si se configuran de forma incorrecta, pueden afectar al rendimiento de tu página web o incluso no llegar a ejecutarse.

En este artículo descubrirás qué puntos debes tener en cuenta sin falta al crear y gestionar tareas cron. 

1. No elegir un intervalo de ejecución demasiado corto

Evita intervalos de tiempo demasiado breves entre ejecuciones. Recomendamos dejar transcurrir al menos 5 minutos antes de que una tarea cron se vuelva a ejecutar.

  • Contexto: en caso de una ejecución demasiado frecuente (p. ej.: cada minuto), puede ocurrir que los procesos se solapen en momentos de alta carga del servidor. Esto puede dar lugar a ejecuciones paralelas que ralenticen aún más el servidor y bloqueen los procesos.

2. Configurar notificaciones de error (MAILTO)

Para evitar tener que revisar manualmente los archivos de registro en caso de problemas, deberías solicitar el envío de los mensajes de error por correo electrónico.

Para ello, inserta la variable MAILTO en la primera línea de tu archivo crontab para la tarea cron:

MAILTO=juana.perez@example.com

3. Utilizar la versión de PHP correcta

Si quieres ejecutar scripts PHP directamente, debes indicar la ruta absoluta al intérprete de PHP. Asegúrate también de utilizar una versión de PHP que sea compatible con tu script.

Usa siempre la ruta completa al archivo binario (por ejemplo, /usr/bin/php8.3).

VERSIÓN PHP RUTA AL INTÉRPRETE  
PHP 8.4 /usr/bin/php8.4  
PHP 8.3 /usr/bin/php8.3  
PHP 8.2 /usr/bin/php8.2  
Legacy (más antiguas) /usr/bin/php8.1
/usr/bin/php8.0
/usr/bin/php7.4
/usr/bin/php7.3
/usr/bin/php7.2
/usr/bin/php7.1
/usr/bin/php5.5
/usr/bin/php5.4
/usr/bin/php5.2
/usr/bin/php4.4
Lo ideal es utilizar las últimas versiones.

Nuestro consejo

/usr/bin/php se refiere a PHP 4.4 (mediante enlace simbólico). Para evitar incompatibilidades, te recomendamos especificar explícitamente el número de versión (por ejemplo, php8.3).

4. Indicar la ruta absoluta al script

El conocido como «cron daemon» no reconoce tu carpeta actual. Por lo tanto, indica siempre la ruta completa (absoluta) a tu script. La ruta depende de la fecha de obtención de tu contrato.

Un ejemplo de una línea de tarea cron (ejecución cada 10 minutos) sería:

A) Contratos desde el 18/09/2025 (nuevos)

*/10 * * * * * /usr/bin/php8.2 -f /home/www/test.php

B) Contratos antes del 18/09/2025 (existentes)

*/10 * * * * * /usr/bin/php8.2 -f /homepages/12/d12345678/htdocs/test.php

 

Nota: si no tienes la seguridad de cuál es tu ruta, este artículo te ayudará: determinar la ruta absoluta (Document root) de un espacio web

5. Utilizar ajustes de php.ini propios (petición HTTP)

Si ejecutas un script PHP directamente a través del intérprete (como se ha descrito anteriormente), se ignorarán los ajustes individuales de tu archivo php.ini.

Si tu script necesita ajustes específicos del archivo php.ini (por ejemplo, memory_limit o max_execution_time), deberías ejecutar la tarea cron con una petición HTTP a través de cURL en su lugar. Esto estimula una llamada a través del navegador web.

Por ejemplo:

*/10 * * * * * /usr/bin/curl -s https://example.com/test.php > /dev/null

 

Uso con protección de directorios

Para las tarifas de hosting compartido, por motivos de seguridad recomendamos  guardar los scripts en carpetas protegidas por contraseña. Para que cURL pueda acceder a ellos, debes introducir el nombre de usuario y la contraseña con el parámetro -u.

Ejemplo con autenticación:

*/10 * * * * * /usr/bin/curl -s -u usuario:contraseña 
https://example.com/test.php > /dev/null