En este artículo
Que es Crontab?
Crontab (tabla cron) es un programador de tareas basado en tiempo en sistemas operativos tipo Unix. Permite programar comandos o scripts para ejecutarse automaticamente en intervalos especificados.
Cada usuario del sistema puede tener su propio archivo crontab. El archivo contiene una lista de trabajos cron donde cada linea define un horario usando una expresion temporal de cinco campos seguida del comando a ejecutar.
Sintaxis de expresiones Cron
Una expresion cron consta de cinco campos separados por espacios:
- Minuto (0-59) — especifica en que minuto debe ejecutarse la tarea
- Hora (0-23) — especifica la hora en formato de 24 horas
- Dia del mes (1-31) — especifica el dia del mes
- Mes (1-12) — especifica el mes del ano
- Dia de la semana (0-7, donde 0 y 7 son domingo)
Los caracteres especiales incluyen: * (cualquier valor), / (valores de paso), - (rangos) y coma (listas).
Patrones Cron comunes
Las expresiones cron mas utilizadas:
- */5 * * * * — cada 5 minutos, comunmente usado para verificaciones de salud
- 0 * * * * — cada hora en el minuto 0
- 0 0 * * * — diariamente a medianoche, estandar para copias de seguridad
- 0 0 * * 1-5 — cada dia laborable a medianoche
- 0 0 1 * * — primer dia de cada mes a medianoche
- 0 9,17 * * 1-5 — a las 9 AM y 5 PM en dias laborables
Pruébalo gratis — sin registro
Construir una expresion Cron →Casos de uso comunes
Los trabajos cron automatizan practicamente cualquier tarea repetitiva del sistema:
- Rotacion y limpieza de logs — comprimir o eliminar archivos de log antiguos
- Copias de seguridad de bases de datos — programar comandos regulares de respaldo
- Generacion de informes — compilar informes diarios, semanales o mensuales
- Limpieza de cache — purgar periodicamente entradas de cache expiradas
- Monitoreo del sistema — ejecutar verificaciones de salud a intervalos regulares
Consejos y trampas
Incluso los desarrolladores experimentados encuentran trampas comunes de cron:
- Conciencia de zona horaria — cron usa la zona horaria del sistema por defecto. Configure TZ o use UTC
- Trabajos superpuestos — use flock para evitar multiples instancias simultaneas
- Problemas de PATH — cron se ejecuta con un entorno minimo. Use siempre rutas absolutas
- Manejo de salida — cron envia stdout y stderr por correo. Redirija a un archivo de log
- Depuracion — revise /var/log/syslog o /var/log/cron
Preguntas frecuentes
Puede cron programar tareas con precision de segundos?
El cron estandar no soporta segundos. Use una solucion alternativa o cambie a systemd timers.
Cual es la diferencia entre cron y systemd timers?
Cron es el programador Unix tradicional. Los timers de systemd ofrecen precision por debajo del minuto y mejor registro, pero son especificos de Linux.
Como pruebo un trabajo cron?
Ejecute el comando manualmente primero, simule el entorno cron con env -i, y luego prograumelo cada minuto para verificar.