Gliora

Cron

Concepto de Desarrollo web en Utilidades, conectado con sus herramientas y conceptos vecinos.

Actualizado el 15 de julio de 2026

Herramienta Generador de cron Crea y describe expresiones cron. Abrir calculadora →

Cron es el planificador de tareas de los sistemas Unix y Linux: un demonio que se ejecuta en segundo plano y lanza comandos o scripts en los momentos que le has indicado. Es la herramienta estándar para automatizar backups, enviar informes periódicos, limpiar archivos temporales o sincronizar datos sin intervención humana.

Sintaxis de una expresión cron

Una expresión cron tiene cinco campos:

┌─── minuto       (0-59)
│ ┌── hora         (0-23)
│ │ ┌─ día del mes  (1-31)
│ │ │ ┌ mes         (1-12)
│ │ │ │ ┌ día de la semana (0-7, donde 0 y 7 son domingo)
│ │ │ │ │
* * * * *  comando

El asterisco * significa «cualquier valor». Se pueden usar:

  • Comas para varios valores: 1,15 (los días 1 y 15).
  • Guiones para rangos: 1-5 (de lunes a viernes).
  • Barras para intervalos: */5 (cada 5 unidades).

Ejemplos prácticos

ExpresiónCuándo se ejecuta
0 9 * * 1-5A las 9:00, de lunes a viernes
*/15 * * * *Cada 15 minutos
0 0 1 * *A medianoche el primer día de cada mes
30 23 * * 0A las 23:30 cada domingo
0 6,18 * * *A las 6:00 y a las 18:00 todos los días
0 2 * * 1A las 2:00 cada lunes

Cómo editar la crontab

# Editar la crontab del usuario actual
crontab -e

# Ver la crontab actual
crontab -l

# Eliminar toda la crontab del usuario
crontab -r

# Ejemplo de entrada completa (backup a las 3:00 cada día):
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

El redireccionamiento >> /var/log/backup.log 2>&1 envía tanto la salida estándar como los errores al fichero de log. Sin esto, cron puede intentar enviarte los resultados por correo y silenciarlos si no hay servidor de correo configurado.

Atajos especiales

Muchos entornos modernos aceptan alias de texto en lugar de los cinco campos:

AliasEquivalenteDescripción
@rebootAl arrancar el sistema
@hourly0 * * * *Cada hora
@daily0 0 * * *Cada día a medianoche
@weekly0 0 * * 0Cada semana (domingos a medianoche)
@monthly0 0 1 * *El primer día de cada mes
@yearly0 0 1 1 *El 1 de enero

Cron en la nube y entornos modernos

Las plataformas cloud ofrecen su propia versión de cron:

  • GitHub Actions: schedule con expresión cron en el workflow YAML.
  • AWS EventBridge / CloudWatch Events: misma sintaxis de 5 campos más un campo de año opcional.
  • Heroku Scheduler, Railway, Render: interfaces visuales sobre cron.
  • Kubernetes CronJob: recurso nativo que ejecuta pods en una expresión cron.

La sintaxis es prácticamente la misma en todos; las diferencias son las zonas horarias (normalmente UTC por defecto) y cómo gestiona el sistema los trabajos que se solapan si el anterior no ha terminado cuando llega el siguiente.

Errores comunes

  • Zona horaria inesperada: cron usa la zona horaria del servidor, que suele ser UTC. Si tu script espera la hora local, puede ejecutarse a deshora. Añade explícitamente TZ=Europe/Madrid al principio del crontab o al inicio del script.
  • Variables de entorno diferentes: cron ejecuta los comandos con un entorno minimal, sin tu PATH, HOME ni otras variables. Usa rutas absolutas en los comandos o define las variables necesarias al inicio del archivo crontab.
  • Script sin permisos de ejecución: si el script no tiene chmod +x, cron no puede lanzarlo. Añade bash /ruta/script.sh en lugar de /ruta/script.sh para evitar el problema.
  • No redirigir la salida: sin redirección, cron intenta enviar el output por correo. Si no hay servidor de correo, el output se pierde y no sabes si la tarea funcionó.

Conceptos relacionados

También en Desarrollo web

Preguntas frecuentes

¿Qué es una expresión cron?
Es una cadena de cinco (o seis) campos separados por espacios que define cuándo debe ejecutarse una tarea: minuto, hora, día del mes, mes y día de la semana. Por ejemplo, '0 9 * * 1-5' significa 'a las 9:00 de lunes a viernes'.
¿Cómo ejecuto un cron job en Linux?
Con el comando 'crontab -e' editas la tabla de tareas del usuario actual. Cada línea es una expresión cron seguida del comando a ejecutar. Los logs de ejecución suelen ir a /var/log/syslog o mediante el correo del sistema.
¿Cuál es la diferencia entre cron y crontab?
Cron es el demonio (servicio en segundo plano) que ejecuta las tareas programadas. Crontab es el archivo de configuración donde defines esas tareas, y también el comando para editarlo. Cada usuario del sistema puede tener su propia crontab.

Ver todas las herramientas de Utilidades.