Encontranos en redes
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
- Ingresá a cPanel
- Andá a Avanzado → Cron Jobs (o Trabajos de Cron)
- 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)
- Ingresá el comando
- Hacé clic en Add New Cron Job
Programaciones comunes
| Frecuencia | Minuto | Hora | Día | Mes | Semana |
|---|---|---|---|---|---|
| Cada 5 minutos | */5 | * | * | * | * |
| Cada hora | 0 | * | * | * | * |
| Diario a las 3 AM | 0 | 3 | * | * | * |
| Semanal (lunes) | 0 | 2 | * | * | 1 |
| Mensual (día 1) | 0 | 4 | 1 | * | * |
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=newsletterWordPress Cron
WordPress tiene su propio sistema de cron que depende de visitas. Para hacerlo más confiable:
- Deshabilitá el cron de WordPress en
wp-config.php:
php
define('DISABLE_WP_CRON', true);- 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>&1Notificaciones 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>&1Solo recibir errores
bash
# Redirigir stdout pero mantener stderr
/usr/local/bin/php /home/usuario/script.php > /dev/nullSolución de problemas
El cron no se ejecuta
- Verificá la ruta completa al intérprete PHP:
bash
which php
# Resultado típico: /usr/local/bin/php- Verificá permisos del script:
bash
chmod 755 /home/usuario/public_html/cron/script.php- Probá el comando manualmente por SSH:
bash
/usr/local/bin/php /home/usuario/public_html/cron/script.phpErrores 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.phpRecomendaciones
- 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?