Lección 2
Campos y sintaxis
Comodines, listas, rangos y valores de paso en cron de cinco campos.
Leer cron significa leer cinco enteros restringidos (o comodines) de izquierda a derecha.
Orden y límites de campos
| Campo | Valores permitidos (Unix típico) |
|---|---|
| Minuto | 0–59 |
| Hora | 0–23 |
| Día del mes | 1–31 |
| Mes | 1–12 (o nombres en algunos parsers) |
| Día de la semana | 0–7 (0 y 7 suelen significar domingo) |
Mnemónico: minuto antes que hora, luego día del mes antes que mes, luego día de la semana.
Algunos sistemas añaden campo de segundos o año — este curso se centra en la línea habitual de cinco campos salvo que se indique lo contrario.
Comodín *
* en un campo significa «cada valor permitido».
* * * * *— cada minuto (muy agresivo; rara vez lo que quieres en producción)0 * * * *— en el minuto 0 de cada hora (cada hora en punto)
Listas y rangos
- Lista:
0,15,30,45en el campo minuto — cuatro veces por hora - Rango:
1-5en día de la semana — lunes a viernes (consulta notas de plataforma para inicio 0 vs 1) - Combinado:
9-17en hora — ventana de horario laboral cada minuto coincidente
Sintaxis de paso /
*/5 en el campo minuto significa «cada 5 minutos empezando en 0»: 0, 5, 10, …
30-59/10 significa 30, 40, 50 en el campo minuto.
Los pasos se aplican al átomo antes de /. Pasos mal colocados son un error de parseo habitual.
Día del mes vs día de la semana
Cuando ambos día del mes y día de la semana están restringidos (no *), cron Unix suele tratarlos como OR, no AND:
0 0 1 * 1— medianoche el día 1 o medianoche los lunes (cualquiera dispara)
Si necesitas «primer lunes del mes», cron solo es incómodo — usa un script wrapper o un programador más rico.
Combinaciones inválidas
31 de febrero y minuto 60 son inválidos. Los buenos parsers los rechazan pronto; herramientas silenciosas pueden producir listas vacías de próxima ejecución.
Conclusión clave
Construye expresiones campo a campo: fija minuto y hora primero, luego decide si los filtros de día pertenecen a DOM, DOW o ambos — conociendo la semántica OR. Prueba con un parser antes de comprometerte con crontab de producción.