CronAutomatizacióncPanel4 min de lectura

Programar tareas con Cron Jobs en cPanel

Crear cron jobs, programaciones comunes, scripts PHP via cron y solución de problemas.


¿Qué son los Cron Jobs?

Los Cron Jobs son tareas programadas que se ejecutan automáticamente en intervalos definidos. Son útiles para backups, envío de emails, limpieza de caché, actualización de datos y más.

Crear un Cron Job en cPanel

  1. Ingresá a cPanel
  2. Andá a AvanzadoCron Jobs (o Trabajos de Cron)
  3. Configurá la programación:
  • Minuto: 0-59
  • Hora: 0-23
  • Día del mes: 1-31
  • Mes: 1-12
  • Día de la semana: 0-6 (0 = domingo)
  1. Ingresá el comando
  2. Hacé clic en Add New Cron Job

Programaciones comunes

FrecuenciaMinutoHoraDíaMesSemana
Cada 5 minutos*/5****
Cada hora0****
Diario a las 3 AM03***
Semanal (lunes)02**1
Mensual (día 1)041**

cPanel también ofrece atajos: "Once Per Minute", "Once Per Hour", "Once Per Day", etc.

Ejecutar scripts PHP via Cron

bash
# Ejecutar un script PHP
/usr/local/bin/php /home/usuario/public_html/script.php

# Con versión específica de PHP
/usr/local/bin/ea-php83 /home/usuario/public_html/cron/tarea.php

# Pasar parámetros
/usr/local/bin/php /home/usuario/public_html/cron/enviar-emails.php --tipo=newsletter

WordPress Cron

WordPress tiene su propio sistema de cron que depende de visitas. Para hacerlo más confiable:

  1. Deshabilitá el cron de WordPress en wp-config.php:
php
define('DISABLE_WP_CRON', true);
  1. Creá un cron real en cPanel:
bash
# Ejecutar wp-cron cada 5 minutos
*/5 * * * * /usr/local/bin/php /home/usuario/public_html/wp-cron.php > /dev/null 2>&1

# O via wget
*/5 * * * * wget -q -O - https://tudominio.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1

Notificaciones por email

Por defecto, cron envía un email con la salida de cada ejecución.

Configurar email de notificación

En la sección Cron Email, ingresá tu dirección de email.

Silenciar la salida

Si no querés recibir emails:

bash
# Redirigir toda la salida a /dev/null
/usr/local/bin/php /home/usuario/script.php > /dev/null 2>&1

Solo recibir errores

bash
# Redirigir stdout pero mantener stderr
/usr/local/bin/php /home/usuario/script.php > /dev/null

Solución de problemas

El cron no se ejecuta

  1. Verificá la ruta completa al intérprete PHP:
bash
which php
# Resultado típico: /usr/local/bin/php
  1. Verificá permisos del script:
bash
chmod 755 /home/usuario/public_html/cron/script.php
  1. Probá el comando manualmente por SSH:
bash
/usr/local/bin/php /home/usuario/public_html/cron/script.php

Errores comunes

  • Permission denied: Verificá permisos del archivo (755)
  • No such file: Usá rutas absolutas completas
  • PHP Fatal error: Revisá el script por errores de sintaxis

Ejemplos prácticos

bash
# Backup diario de la base de datos
0 3 * * * mysqldump -u user -pPASS dbname > /home/usuario/backups/db-$(date +\%Y\%m\%d).sql

# Limpiar archivos temporales semanalmente
0 4 * * 0 find /home/usuario/public_html/tmp -type f -mtime +7 -delete

# Enviar reporte semanal
0 9 * * 1 /usr/local/bin/php /home/usuario/public_html/cron/reporte-semanal.php

Recomendaciones

  • Usá siempre rutas absolutas en los comandos
  • Redirigí la salida para evitar emails innecesarios
  • No programes tareas pesadas en horarios de alto tráfico
  • Documentá cada cron job con un comentario en el comando
  • Revisá periódicamente que los crons se estén ejecutando correctamente

¿Te resultó útil esta guía?