Guía para configurar un cron job en cPanel, Plesk o DirectAdmin
¿Qué es un cron job y por qué te conviene aprender a usarlo?
Imagina que tienes un asistente personal que trabaja 24/7 y que, sin que tú hagas nada, se encarga de tareas como enviar correos, actualizar tu base de datos, generar informes o limpiar archivos temporales. Pues bien, eso es exactamente un cron job (o tarea programada) en tu servidor Linux. Es una herramienta fundamental para cualquier persona que gestione una web, una tienda online o una aplicación, porque te permite automatizar procesos repetitivos y ahorrar muchísimo tiempo.
Cuando hablamos de programar tareas linux, nos referimos a la capacidad del sistema operativo para ejecutar comandos o scripts en un momento específico, o de forma periódica (cada hora, cada día, cada semana...). La mayoría de los paneles de control de hosting, como cPanel, Plesk o DirectAdmin, incluyen una interfaz gráfica para que no tengas que usar la línea de comandos. Sin embargo, entender la lógica detrás es clave para que no te pierdas.
En esta guía, te explicaré paso a paso cómo configurar un cron job en cPanel, configurar cron job en Plesk y también en DirectAdmin. Además, te daré ejemplos prácticos, errores comunes y consejos para que tus tareas se ejecuten sin problemas. No necesitas ser un experto en Linux, solo tener paciencia y seguir las instrucciones al pie de la letra.
La anatomía de un cron job: el comando y la programación
Antes de entrar en cada panel, es esencial que entiendas dos partes: el comando (qué quieres que se ejecute) y la programación (cuándo quieres que se ejecute). La programación se define con una línea de cinco campos, separados por espacios: minuto, hora, día del mes, mes y día de la semana. Por ejemplo, 30 2 * * * significa "a las 2:30 AM todos los días".
| Campo | Rango | Significado |
|---|---|---|
| Minuto | 0-59 | El minuto exacto (0 es el minuto 0, 30 es el minuto 30) |
| Hora | 0-23 | La hora en formato 24h (0 es medianoche, 14 son las 2 PM) |
| Día del mes | 1-31 | El día del mes (1 al 31) |
| Mes | 1-12 | El mes (1 es enero, 12 es diciembre) |
| Día de la semana | 0-7 | 0 y 7 son domingo, 1 es lunes, 6 es sábado |
Un asterisco * significa "todos los valores posibles". Por ejemplo, * * * * * ejecutaría el comando cada minuto. Si quieres cada 5 minutos, usarías */5 * * * *. Si quieres cada día a las 6 de la mañana, usarías 0 6 * * *.
[TIP] Siempre empieza con una frecuencia baja (por ejemplo, cada 10 minutos) para probar que tu script funciona, y luego ajusta el horario definitivo.
Configurar un cron job en cPanel: la interfaz más común
cPanel es, sin duda, el panel de control más popular en el hosting compartido. La sección para cron job cpanel se llama "Trabajos Cron" o "Cron Jobs" y suele estar dentro del grupo "Avanzado". Aquí te explico cómo usarla.
Paso 1: Acceder a la interfaz
Inicia sesión en tu cPanel con tu usuario y contraseña. Busca el icono "Trabajos Cron" o "Cron Jobs". Si no lo ves, usa el buscador de la parte superior derecha. Al hacer clic, se abrirá una página con un formulario.
Paso 2: Configurar el correo electrónico (opcional pero recomendado)
En la parte superior, verás un campo para "Enviar resultados por correo electrónico". Si lo dejas en blanco, no recibirás nada. Te recomiendo que pongas tu correo, pero con cuidado: si tu script se ejecuta cada minuto, recibirás 1440 correos al día. Mejor usa un correo desechable o deja el campo vacío y usa un sistema de logs.
Paso 3: Rellenar los campos de programación
cPanel te ofrece dos opciones: la configuración básica (con menús desplegables) y la configuración avanzada (escribiendo la línea de 5 campos). Para principiantes, la básica es perfecta. Selecciona, por ejemplo, "Una vez al día" y luego la hora.
Paso 4: Escribir el comando
Aquí es donde debes tener cuidado. El comando debe ser una ruta absoluta. Por ejemplo, si quieres ejecutar un script PHP, el comando sería algo como:
/usr/bin/php /home/tuusuario/public_html/mi_script.php
O si es un script de Python:
/usr/bin/python3 /home/tuusuario/scripts/mi_script.py
[WARNING] No uses rutas relativas como
php script.php. El cron job no sabe en qué carpeta estás. Siempre usa la ruta completa desde la raíz del sistema.
Paso 5: Guardar y verificar
Haz clic en "Agregar nuevo trabajo cron". Verás una lista de tareas programadas. Si quieres editarla, haz clic en "Editar". Si quieres probarla, puedes usar el botón "Ejecutar ahora" si tu cPanel lo tiene, o simplemente esperar a la hora programada.
Configurar un cron job en Plesk: un enfoque diferente
Plesk es otro panel muy usado, especialmente en servidores VPS y dedicados. La interfaz es más moderna y la opción se llama "Programador de tareas" o "Scheduled Tasks". Aquí el proceso es ligeramente distinto.
Paso 1: Localizar la sección
Entra en tu Plesk y selecciona el dominio o el suscriptor en el que quieres crear la tarea. En el menú izquierdo, busca "Programador de tareas". Si no lo ves, puede estar en la pestaña "Webs y dominios" o en "Herramientas y ajustes".
Paso 2: Crear una nueva tarea
Haz clic en "Añadir tarea" o "Agregar nueva tarea". Verás un formulario con campos como "Comando", "Descripción" y "Programación".
Paso 3: Definir el tipo de programación
Plesk te da una interfaz visual muy amigable. Puedes elegir entre "Cada hora", "Cada día", "Cada semana", etc., o usar el modo avanzado para escribir la línea de cron manualmente. También puedes elegir el usuario que ejecuta el comando (por ejemplo, www-data o el usuario del sistema).
Paso 4: El comando y los parámetros
En el campo "Comando", escribe la ruta completa del script. Plesk, a diferencia de cPanel, a veces te permite usar variables de entorno. Un ejemplo típico sería:
/usr/bin/php /var/www/vhosts/tudominio.com/httpdocs/actualizar.php
[INFO] En Plesk, los archivos del sitio suelen estar en
/var/www/vhosts/tudominio.com/httpdocs/. Si tu script está en otra carpeta, asegúrate de usar la ruta correcta.
Paso 5: Guardar y comprobar logs
Guarda la tarea. Plesk te mostrará un historial de ejecuciones en la misma sección, lo cual es muy útil para depurar errores. Si algo falla, revisa el log para ver el mensaje de error.
Configurar un cron job en DirectAdmin: directo y sin complicaciones
DirectAdmin es conocido por su simplicidad y velocidad. Aunque su interfaz es más antigua, es muy funcional. La sección se llama "Cron Jobs" y está en el menú principal del usuario.
Paso 1: Acceder al panel de cron
Inicia sesión en DirectAdmin. En el menú superior, busca el icono de "Cron Jobs" (puede estar bajo "Avanzado" o en la lista principal). Haz clic para abrir la página.
Paso 2: Crear una tarea
Verás un formulario con dos partes: la programación (con campos para minuto, hora, día, mes y día de semana) y el comando. DirectAdmin también te da la opción de usar una interfaz "sencilla" o "avanzada". Para la sencilla, solo tienes que rellenar los desplegables.
Paso 3: Escribir el comando y elegir el usuario
DirectAdmin te permite elegir el usuario bajo el cual se ejecutará el cron. Esto es importante para los permisos de archivos. Si tu script necesita escribir en un directorio, asegúrate de que el usuario tenga permisos. El comando se escribe igual que en los otros paneles:
/usr/local/bin/php /home/usuario/domains/tudominio.com/public_html/script.php
[WARNING] En DirectAdmin, la ruta de PHP puede ser
/usr/local/bin/phpen lugar de/usr/bin/php. Verifica conwhich phpen la terminal si tienes acceso SSH.
Paso 4: Guardar y listo
Haz clic en "Guardar" o "Agregar". DirectAdmin te mostrará la lista de tareas existentes. Puedes pausar las tareas o eliminarlas fácilmente.
Ejemplos prácticos de cron jobs para tu web
Ahora que sabes cómo configurarlos, aquí tienes algunos ejemplos que te pueden servir. Recuerda adaptar las rutas a tu servidor.
-
Backup de tu base de datos MySQL (todos los días a las 4 AM):
0 4 * * * /usr/bin/mysqldump -u usuario -pclave basededatos > /home/usuario/backups/bd_$(date +\%Y\%m\%d).sql -
Enviar un correo de resumen (cada lunes a las 9 AM):
0 9 * * 1 /usr/bin/php /home/usuario/public_html/enviar_resumen.php -
Limpiar archivos temporales (cada hora, en el minuto 15):
15 * * * * /usr/bin/find /tmp -type f -mtime +1 -delete
[TIP] Si tu script PHP necesita variables de entorno (como claves de API), puedes usar el comando
cd /ruta/del/script && /usr/bin/php script.phppara asegurarte de que se ejecute en el directorio correcto.
Errores comunes y cómo solucionarlos
Aunque la configuración es sencilla, es fácil cometer errores. Aquí tienes los más típicos:
- Rutas incorrectas: El error número uno. Usa
which phpowhich pythonpara saber la ruta exacta. - Permisos de archivo: El script debe tener permisos de ejecución (chmod 755). Y el usuario del cron debe poder leer y ejecutar el archivo.
- Salida del script: Si tu script produce mucha salida, se enviará por correo (si lo configuraste) o se perderá. Añade
> /dev/null 2>&1al final del comando para silenciarlo. - Zona horaria: Los cron jobs usan la zona horaria del servidor. Si tu servidor está en UTC y tú en Madrid, "0 9 * * *" serán las 9 AM en UTC, es decir, las 11 AM en Madrid en verano.
- El script no funciona en cron pero sí en el navegador: Esto suele deberse a la falta de variables de entorno. Usa rutas absolutas y define las variables dentro del script.
Preguntas frecuentes (FAQ)
¿Puedo configurar un cron job si mi hosting es compartido?
Sí, la mayoría de los hostings compartidos permiten crear cron jobs, aunque a veces con restricciones (por ejemplo, solo cada 5 minutos como mínimo). Si no encuentras la opción, contacta con tu proveedor.
¿Qué pasa si mi tarea tarda más que el intervalo de ejecución?
Si tu script tarda 10 minutos y está programado para ejecutarse cada 5 minutos, se solaparán procesos. Esto puede causar errores. Asegúrate de que el intervalo sea mayor que el tiempo de ejecución, o usa un mecanismo de bloqueo.
¿Hay alguna alternativa a los cron jobs?
Sí, puedes usar servicios web como "cron-job.org" que hacen peticiones HTTP a tu servidor en un horario determinado. Pero esto requiere que tu web esté siempre accesible y consume ancho de banda. La opción nativa de cron es más fiable.
¿Puedo usar un cron job para tareas de SEO, como generar un sitemap?
¡Por supuesto! Es un uso muy común. Puedes programar un script que genere un sitemap XML dinámicamente cada vez que actualices tu contenido. Por ejemplo, un cron que ejecute un script PHP que recorra tus URLs y genere el archivo.
Consejos finales para dominar la programación de tareas
Configurar un cron job en cPanel, Plesk o DirectAdmin es una habilidad que te abrirá muchas puertas. Empieza con tareas sencillas y ve aumentando la complejidad. Siempre prueba en un entorno de desarrollo si es posible.
[INFO] Si tu proveedor de hosting usa Syspanel (antes conocido como HestiaCP), el proceso es similar. Accede a Syspanel a través del puerto 2106 (por ejemplo,
https://tudominio.com:2106) y busca la sección "Cron" en el menú del usuario. La interfaz es sencilla y te permite añadir tareas con el mismo formato de 5 campos.
Por último, recuerda que un cron job mal configurado puede consumir muchos recursos del servidor. No programes tareas innecesarias y revisa los logs periódicamente. Con un poco de práctica, te convertirás en un experto en programar tareas linux y tu web funcionará como un reloj suizo.
Espero que esta guía te haya sido de ayuda. Si tienes alguna duda, no dudes en dejar un comentario o contactar con tu soporte técnico. ¡Feliz automatización!
