🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo configurar un CRON job en cPanel y DirectAdmin para tareas programadas

Actualizado el 8 de enero de 2026

¿Qué es un CRON job y por qué lo necesitas?

Imagina que tienes un asistente personal que trabaja 24/7 sin descanso, sin vacaciones y sin pedir aumento. Eso es exactamente un cron job en tu servidor. Se trata de una tarea programada que el sistema operativo Linux ejecuta automáticamente en el momento exacto que tú le indiques.

Los cron jobs son la columna vertebral de la automatización servidor. Gracias a ellos, puedes programar desde el envío de correos electrónicos hasta la limpieza de archivos temporales, la generación de copias de seguridad, la actualización de bases de datos o la ejecución de scripts complejos. Todo esto sin que tengas que intervenir manualmente.

Lo mejor es que tanto cPanel como DirectAdmin (los dos paneles de control más populares del mundo) incluyen interfaces gráficas para crear y gestionar estos cron jobs sin necesidad de tocar la terminal. Sin embargo, entender qué hay detrás te dará un control total sobre tus tareas programadas.

En esta guía completa, paso a paso, aprenderás desde cero cómo configurar un cron job en ambos paneles, qué significan los cinco asteriscos que seguro has visto, y algunos ejemplos prácticos que te harán la vida mucho más fácil.


Anatomía de un comando cron: los cinco asteriscos

Antes de entrar en materia, necesitas entender la sintaxis básica. Un cron job se define con una línea de texto que tiene este formato:

* * * * * comando_a_ejecutar

Esos cinco campos separados por espacios representan, en orden:

  1. Minuto (0-59)
  2. Hora (0-23, formato 24h)
  3. Día del mes (1-31)
  4. Mes (1-12)
  5. Día de la semana (0-7, donde 0 y 7 son domingo)

Cuando ves un asterisco (*) significa "todos los valores posibles". Por ejemplo:

  • * * * * * → ejecuta el comando cada minuto
  • 0 * * * * → ejecuta cada hora en punto
  • 0 3 * * * → ejecuta a las 3:00 AM todos los días
  • 15 2 * * 1 → ejecuta a las 2:15 AM cada lunes

[INFO] Algunos paneles permiten usar valores como */5 para indicar "cada 5 minutos". Por ejemplo, */10 * * * * ejecuta el comando cada 10 minutos.


Configurar un CRON job en cPanel

cPanel es probablemente el panel más extendido en el hosting compartido y VPS. Su interfaz es muy amigable y en menos de cinco minutos tendrás tu primera tarea programada funcionando.

Paso 1: Accede al área de Cron Jobs

Después de iniciar sesión en tu cPanel, busca la sección "Avanzado" o "Tareas Programadas". Dependiendo de la versión, puede aparecer como "Cron Jobs" directamente en la página principal. Si no lo encuentras, usa el buscador en la esquina superior derecha y escribe "cron".

Paso 2: Configura el entorno del cron job

cPanel te mostrará un formulario con los siguientes campos:

  • Minuto: puedes elegir valores específicos o usar */5 para cada 5 minutos
  • Hora: por ejemplo, 3 para las 3 AM
  • Día del mes: normalmente * para todos los días
  • Mes: * para todos los meses
  • Día de la semana: * para todos los días

Además, verás un campo llamado "Command" (Comando). Aquí es donde escribes la instrucción que quieres ejecutar. Es importante que uses la ruta completa del programa o script.

Por ejemplo, para ejecutar un script PHP ubicado en tu carpeta pública:

/usr/bin/php /home/tuusuario/public_html/scripts/backup.php

Paso 3: Guarda y verifica

Haz clic en "Add New Cron Job" y el sistema te confirmará que la tarea se ha creado. En la parte inferior de la página verás una lista con todos tus cron jobs activos, su próxima ejecución y su historial. Puedes editarlos o eliminarlos cuando quieras.

[TIP] En cPanel, siempre que puedas, usa la ruta absoluta del comando. Si no sabes dónde está PHP, ejecuta which php en la terminal o prueba con /usr/local/bin/php que es la ruta más común en cPanel.


Configurar un CRON job en DirectAdmin

DirectAdmin es otro panel muy robusto, conocido por ser ligero y rápido. El proceso para configurar cron jobs aquí es ligeramente diferente, pero igual de sencillo.

Paso 1: Entra en la sección de Cron

Inicia sesión en tu DirectAdmin y busca el icono "Cron Jobs" dentro del apartado "Advanced Features". En versiones más recientes, puede estar directamente en el menú principal.

Paso 2: Elige el tipo de cron

DirectAdmin te ofrece dos opciones:

  • Simple Cron: una interfaz con campos desplegables para elegir minuto, hora, día, etc.
  • Advanced Cron: te permite escribir la línea completa de cron directamente.

Para empezar, te recomiendo usar Simple Cron si eres principiante. Solo tienes que seleccionar los valores que necesitas con los menús desplegables.

Paso 3: Escribe el comando

En el campo "Command to run" (Comando a ejecutar), escribe la instrucción. DirectAdmin, a diferencia de cPanel, te permite elegir el usuario bajo el cual se ejecutará la tarea (normalmente tu propio usuario).

Un ejemplo típico sería:

/usr/bin/php /home/usuario/domains/tudominio.com/public_html/cron.php

Paso 4: Guarda y monitoriza

Pulsa "Add Cron" y listo. DirectAdmin te mostrará un mensaje de confirmación y la tarea aparecerá en la lista de crons activos. Puedes ver el historial de ejecuciones desde el botón "View Cron Log".

[INFO] Si tienes un servidor con Syspanel (antes conocido como HestiaCP), recuerda que el acceso se realiza a través del puerto 2106 (por ejemplo, https://tuserver.com:2106). Allí también encontrarás una sección de cron jobs en la pestaña de configuración avanzada.


Ejemplos prácticos de tareas programadas

Ahora que ya sabes cómo crear un cron job en ambos paneles, vamos a ver algunos ejemplos reales que te serán de gran utilidad.

1. Copia de seguridad automática de tu base de datos MySQL

Esta es una de las tareas más comunes. Puedes programar un volcado de tu base de datos cada noche:

0 2 * * * mysqldump -u usuario -pclave basededatos > /home/usuario/backups/bd_$(date +\%Y\%m\%d).sql

[WARNING] Guardar contraseñas en comandos cron es un riesgo de seguridad. Si tu servidor lo permite, crea un archivo .my.cnf en el directorio home con las credenciales y usa simplemente mysqldump basededatos.

2. Limpieza de archivos temporales

Para borrar archivos antiguos de una carpeta temporal (por ejemplo, mayores de 7 días):

0 4 * * * find /home/usuario/tmp/* -mtime +7 -exec rm {} \;

3. Envío de correos programados

Si tienes un script PHP que envía newsletters:

30 9 * * 1 /usr/bin/php /home/usuario/public_html/enviar_newsletter.php

Este ejemplo envía el boletín cada lunes a las 9:30 AM.

4. Reinicio de servicios

Para reiniciar un servicio que se queda colgado (como Apache):

*/15 * * * * /usr/sbin/service apache2 restart

[TIP] Si tu cron job tarda mucho en completarse, considera usar flock para evitar que se lancen múltiples instancias simultáneas: */5 * * * * flock -n /tmp/mitarea.lock /usr/bin/php /home/usuario/tarea.php


Errores comunes y cómo solucionarlos

Aunque el proceso es sencillo, hay errores típicos que todo el mundo comete al principio.

El cron no se ejecuta

  • Verifica la ruta: el comando debe tener la ruta completa. Si usas php y no está en el PATH, no funcionará.
  • Revisa los permisos: el script debe ser ejecutable (chmod +x script.sh).
  • Mira los logs: en cPanel, la sección de Cron Jobs tiene un historial. En DirectAdmin, busca el log en ~/.cron.log.

El cron se ejecuta pero no hace nada

  • Comprueba los errores: redirige la salida a un archivo para ver qué pasa:
0 * * * * /usr/bin/php /home/usuario/script.php >> /home/usuario/cron.log 2>&1
  • Entorno diferente: los cron jobs no cargan tu perfil de usuario. Si tu script depende de variables de entorno, debes definirlas manualmente dentro del comando.

Problemas con las rutas

En PHP, por ejemplo, si usas rutas relativas dentro del script, fallarán. Siempre usa dirname(__FILE__) o rutas absolutas.


Preguntas frecuentes (FAQ)

¿Cuál es la frecuencia mínima de un cron job?

En la mayoría de servidores, la mínima frecuencia es de 1 minuto. Si necesitas algo más frecuente (como cada 30 segundos), tendrías que usar un bucle dentro del script o herramientas como watch.

¿Consumen recursos los cron jobs?

Sí, cada cron job consume recursos del servidor en el momento de ejecución. Si tienes muchos crons programados a la misma hora, pueden ralentizar tu sitio. Lo ideal es distribuirlos en horas diferentes.

¿Puedo programar un cron job desde la terminal?

Por supuesto. Ejecuta crontab -e para editar tu tabla de crons personal. La sintaxis es la misma que hemos visto. Esto es útil si tu panel no tiene interfaz gráfica o prefieres la línea de comandos.

¿Qué pasa si mi cuenta de hosting no tiene acceso a cron jobs?

Algunos planes de hosting compartido muy básicos no incluyen cron jobs. En ese caso, alternativas como servicios externos (cron-job.org) pueden ejecutar tareas HTTP periódicamente.

¿Cómo pruebo un cron sin esperar a la hora programada?

Puedes ejecutar el comando manualmente en la terminal primero para verificar que funciona. También puedes crear un cron temporal que se ejecute dentro de un minuto para hacer pruebas.


Consejos finales para la automatización servidor

Configurar cron jobs es solo el principio. Para sacar el máximo partido a tus tareas programadas, sigue estas buenas prácticas:

  1. Documenta cada cron: anota qué hace, cada cuánto y por qué existe. Te lo agradecerás en el futuro.
  2. Usa nombres descriptivos: en los paneles que lo permiten, pon un nombre claro a cada tarea.
  3. Programa las tareas pesadas en horas valle: las 3-5 AM suelen ser las mejores.
  4. Monitorea tus crons: revisa los logs semanalmente para detectar fallos silenciosos.
  5. Haz pruebas siempre: antes de lanzar un cron en producción, pruébalo manualmente.

Con esta guía, ya tienes todo lo necesario para dominar los cron jobs en cPanel y DirectAdmin. La automatización servidor está a tu alcance: empieza con una tarea sencilla, verifica que funciona y ve aumentando la complejidad. En poco tiempo tendrás tu servidor trabajando solo, como ese asistente perfecto que nunca falla.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel