Lição 5
Fluxo de depuração de Cron
Parse, validação, prévia das próximas execuções e erros off-by-one no dia da semana.
Publicar uma linha cron sem verificação é como times descobrirem que o backup roda ao meio-dia em vez de meia-noite. Trate agendamentos como código: parse, explique, pré-visualize.
Passo 1: Normalizar a linha
- Apenas cinco campos (salvo se a plataforma documentar seis)
- Sem espaços extras; comentários removidos (
# backup jobem linha própria no crontab, não dentro dos campos) - Confirme que não está misturando sintaxe Quartz com
?e cron Unix
Cole a expressão em um parser e leia a decomposição campo a campo.
Passo 2: Ler a descrição em linguagem natural
Uma boa descrição responde:
- Quais minutos e horas disparam?
- Dia do mês e dia da semana estão ambos restritos — e vale semântica OR?
- É “toda manhã de dia útil” ou algo mais estranho?
Se o resumo (em português ou outro idioma) não bate com a intenção, corrija os campos antes do deploy.
Passo 3: Pré-visualizar próximas execuções
Gere pelo menos três a cinco instantes futuros em:
- O fuso de execução da plataforma
- UTC (para correlacionar com logs e Actions)
Compare com um calendário — especialmente em viradas de mês, transições de horário de verão e meses curtos.
Passo 4: Conferir a documentação da plataforma
| Pergunta | Ação |
|---|---|
| GitHub Actions? | Assuma UTC |
| CronJob no K8s? | Defina timeZone explicitamente |
| Crontab Linux? | Conheça timedatectl do servidor |
| Motor de seis campos? | Traduza; não copie cegamente |
Checklist de erros comuns
| Erro | Sintoma |
|---|---|
Confusão domingo 7 vs 0 | Dia da semana deslocado |
| DOM e DOW ambos definidos esperando AND | Execuções extras |
*/60 no campo minuto | Agendamento inválido ou vazio |
| 9h local escrita para Actions em UTC | Job na hora de parede errada |
| Job longo + intervalo curto | Execuções sobrepostas |
Passo 5: Documentar no runbook
Registre expressão, fuso, plataforma, dono e duração esperada. Vincule monitoramento que prove que a última execução teve sucesso.
Conclusão
Parse → descrever → pré-visualizar → documentar. Se qualquer passo discordar das expectativas, pare. Bugs de cron são silenciosos até o financeiro perguntar por que o relatório rodou duas vezes.