Cron
Concepto de Desarrollo web en Utilidades, conectado con sus herramientas y conceptos vecinos.
Actualizado el 15 de julio de 2026
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ón | Cuándo se ejecuta |
|---|---|
0 9 * * 1-5 | A 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 * * 0 | A las 23:30 cada domingo |
0 6,18 * * * | A las 6:00 y a las 18:00 todos los días |
0 2 * * 1 | A 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:
| Alias | Equivalente | Descripción |
|---|---|---|
@reboot | — | Al arrancar el sistema |
@hourly | 0 * * * * | Cada hora |
@daily | 0 0 * * * | Cada día a medianoche |
@weekly | 0 0 * * 0 | Cada semana (domingos a medianoche) |
@monthly | 0 0 1 * * | El primer día de cada mes |
@yearly | 0 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:
schedulecon 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/Madridal principio del crontab o al inicio del script. - Variables de entorno diferentes: cron ejecuta los comandos con un entorno minimal, sin tu
PATH,HOMEni 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ñadebash /ruta/script.shen lugar de/ruta/script.shpara 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?
¿Cómo ejecuto un cron job en Linux?
¿Cuál es la diferencia entre cron y crontab?
Ver todas las herramientas de Utilidades.