Para configurar un cron job en tu hosting compartido, ve a cPanel → Trabajos Cron, escribe la expresión de tiempo (minuto, hora, día, mes, día de semana) y el comando que quieres ejecutar. En menos de dos minutos puedes tener una tarea programada corriendo de forma automática.
A continuación te explico cada parte con detalle para que no cometas errores que provoquen ejecuciones duplicadas, fallos silenciosos o cargos innecesarios de CPU.
¿Qué es un cron job y para qué sirve en hosting?
Un cron job es una tarea programada que el servidor ejecuta automáticamente en los intervalos que tú definas. El nombre viene del demonio cron de Unix/Linux, que lee una tabla de tareas llamada crontab y las lanza en el momento exacto indicado.
Casos de uso habituales en hosting web:
- Enviar correos o boletines de forma periódica.
- Generar reportes o exportar datos a CSV/XML.
- Limpiar archivos temporales, cachés o logs.
- Sincronizar contenido con APIs externas (precios, inventario, feeds).
- Disparar el sistema de cola de emails de WordPress o cualquier CMS.
- Hacer respaldos incrementales de base de datos o archivos.
En un hosting compartido no tienes acceso a la consola para editar el crontab directamente, pero cPanel ofrece una interfaz gráfica que hace exactamente lo mismo.
Cómo acceder a los cron jobs en cPanel
- Inicia sesión en cPanel (normalmente en
tudominio.com:2083otudominio.com/cpanel). - Busca la sección Avanzado y haz clic en Trabajos Cron (o "Cron Jobs" si tu cPanel está en inglés).
- En la parte inferior verás el formulario para agregar un nuevo trabajo. Arriba se muestra la lista de los cron jobs ya configurados.
Lo primero que verás es un selector de frecuencia común: cada minuto, cada cinco minutos, cada hora, diariamente, semanalmente, mensualmente. Puedes usarlo como punto de partida, pero te recomiendo aprender la sintaxis manual para tener control total.
La sintaxis del crontab explicada
Un cron job se define con cinco campos de tiempo seguidos del comando:
* * * * * /ruta/al/comando
│ │ │ │ │
│ │ │ │ └── Día de la semana (0=domingo … 6=sábado)
│ │ │ └──── Mes (1-12)
│ │ └────── Día del mes (1-31)
│ └──────── Hora (0-23)
└────────── Minuto (0-59)
El asterisco * significa "todos los valores posibles" para ese campo. También puedes usar:
,para listar valores:1,15= los días 1 y 15.-para rangos:9-17= de 9 a 17./para intervalos:*/5= cada 5 unidades.
Ejemplos de expresiones cron
| Expresión | Significado |
|---|---|
* * * * * |
Cada minuto |
*/15 * * * * |
Cada 15 minutos |
0 * * * * |
Cada hora en punto |
0 3 * * * |
Todos los días a las 3:00 AM |
0 9 * * 1 |
Cada lunes a las 9:00 AM |
0 0 1 * * |
El primer día de cada mes a medianoche |
El comando: rutas absolutas y tipos de scripts
El campo de comando es lo que el servidor ejecutará. En hosting compartido, siempre usa rutas absolutas, ya que el cron corre en un entorno con variables de entorno distintas a las de tu sesión SSH o FTP.
Ejecutar un script PHP
/usr/local/bin/php /home/tuusuario/public_html/scripts/tarea.php
Para saber la ruta exacta de PHP en tu servidor, puedes crear un archivo con <?php echo PHP_BINARY; ?> y abrirlo en el navegador, o consultar con soporte técnico.
Ejecutar un script con curl (URL)
/usr/bin/curl -s https://tudominio.com/cron/tarea.php > /dev/null 2>&1
El > /dev/null 2>&1 descarta la salida para que cPanel no te envíe un email con el resultado en cada ejecución. Si quieres guardar un log, reemplázalo por >> /home/tuusuario/logs/cron.log 2>&1.
Ejecutar un script Bash o Python
/bin/bash /home/tuusuario/scripts/limpieza.sh
/usr/bin/python3 /home/tuusuario/scripts/sync.py
Errores comunes y cómo evitarlos
| Error | Causa | Solución |
|---|---|---|
| El script no se ejecuta | Ruta relativa o PHP incorrecto | Usa rutas absolutas y confirma la versión de PHP con soporte |
| Recibes emails en cada ejecución | El comando produce salida en stdout | Agrega > /dev/null 2>&1 al final |
| El script se ejecuta demasiadas veces | Expresión de tiempo mal configurada | Verifica con un validador online como crontab.guru |
| Alto consumo de CPU | Intervalo demasiado corto o script pesado | Aumenta el intervalo y optimiza el script; mínimo recomendado: 5 minutos |
Si tu plan de hosting limita la frecuencia de cron jobs (algunos planes básicos no permiten ejecuciones más frecuentes que cada 5 o 15 minutos), considera actualizar a un plan superior o a un VPS donde tengas control total. En elenlace.com puedes comparar las opciones disponibles y elegir la que mejor se adapte a las necesidades de tu proyecto.
Conclusiones clave
- Los cron jobs automatizan tareas repetitivas en el servidor sin intervención manual.
- En hosting compartido se configuran desde cPanel → Trabajos Cron con una interfaz gráfica sencilla.
- La sintaxis es de cinco campos: minuto, hora, día del mes, mes y día de la semana.
- Usa siempre rutas absolutas para el intérprete (PHP, Python, Bash) y para los archivos de script.
- Añade
> /dev/null 2>&1para silenciar la salida o redirige a un log para auditoría. - Valida tu expresión en crontab.guru antes de guardarla.
¿Quieres automatizar procesos más complejos en tu sitio? El equipo de elenlace.com puede asesorarte sobre el plan de hosting que mejor se adapte a la carga de tus cron jobs. Consulta también nuestra sección de glosario de hosting para más guías técnicas paso a paso.
Preguntas frecuentes
¿Con qué frecuencia mínima puedo ejecutar un cron job en hosting compartido?
Depende del proveedor. La mayoría de los hostings compartidos permiten una ejecución mínima de cada minuto, aunque algunos planes básicos limitan a cada 5 o 15 minutos para proteger los recursos del servidor. Consulta las condiciones de tu plan o pregunta al soporte técnico.
¿Cómo sé si mi cron job se ejecutó correctamente?
La forma más sencilla es redirigir la salida del comando a un archivo de log: agrega >> /home/tuusuario/logs/cron.log 2>&1 al final de tu comando. Luego revisa ese archivo para ver si hubo errores o confirmar la ejecución. También puedes hacer que tu script registre una entrada en base de datos con fecha y estado.
¿Puedo ejecutar un cron job cada 30 segundos?
El demonio cron estándar tiene como unidad mínima el minuto. Para ejecutar algo cada 30 segundos, el truco habitual es agregar dos entradas: una normal y otra con un sleep 30 && antes del comando. Sin embargo, en hosting compartido esto puede no estar permitido y puede generar problemas de rendimiento.
¿Los cron jobs consumen recursos de mi plan de hosting?
Sí. Cada ejecución consume CPU y memoria del servidor. Si tu script es pesado o se ejecuta muy frecuentemente, puedes llegar al límite de recursos de un plan compartido y el hosting podría suspender el servicio. Optimiza el script y usa el intervalo mínimo necesario para tu caso de uso.
Para saber más
Otros proveedores y guías que vale la pena comparar: