Lição 2
Campos e sintaxe
Curingas, listas, intervalos e passos no cron de cinco campos.
Ler cron é ler cinco inteiros restritos (ou curingas) da esquerda para a direita.
Ordem e limites dos campos
| Campo | Valores permitidos (Unix típico) |
|---|---|
| Minuto | 0–59 |
| Hora | 0–23 |
| Dia do mês | 1–31 |
| Mês | 1–12 (ou nomes em alguns parsers) |
| Dia da semana | 0–7 (0 e 7 costumam ser domingo) |
Mnemônico: minuto antes da hora, depois dia do mês antes do mês, depois dia da semana.
Alguns sistemas acrescentam campo de segundos ou ano — este curso foca na linha comum de cinco campos, salvo nota em contrário.
Curinga *
* em um campo significa “todo valor permitido”.
* * * * *— todo minuto (muito agressivo; raramente o que você quer em produção)0 * * * *— no minuto 0 de cada hora (de hora em hora em ponto)
Listas e intervalos
- Lista:
0,15,30,45no campo minuto — quatro vezes por hora - Intervalo:
1-5no dia da semana — segunda a sexta (veja notas da plataforma para início 0 vs 1) - Combinado:
9-17na hora — janela de horário comercial a cada minuto correspondente
Sintaxe de passo /
*/5 no campo minuto significa “a cada 5 minutos a partir de 0”: 0, 5, 10, …
30-59/10 significa 30, 40, 50 no campo minuto.
O passo se aplica ao átomo antes de /. Passos mal posicionados são erro comum de parse.
Dia do mês vs dia da semana
Quando ambos dia do mês e dia da semana estão restritos (não *), o cron Unix em geral trata como OR, não AND:
0 0 1 * 1— meia-noite no dia 1 ou meia-noite nas segundas (qualquer um dispara)
Se você precisa de “primeira segunda do mês”, cron sozinho é incômodo — use script wrapper ou scheduler mais rico.
Combinações inválidas
31 de fevereiro e minuto 60 são inválidos. Bons parsers rejeitam cedo; ferramentas silenciosas podem gerar listas vazias de próxima execução.
Resumo
Monte expressões campo a campo: fixe minuto e hora primeiro, depois decida se filtros de dia vão no DOM, DOW ou ambos — sabendo a semântica OR. Teste com um parser antes de commitar no crontab de produção.