OTOthoTools

Explicador cron

Valide e entenda agendamentos
15 2 * * 1-5

No minuto 15, hora 2, dia do mês *, mês *, dia da semana 1-5.

Orientação defensiva educacional. Revise cada resultado antes do uso em produção.

Introdução

O Explicador cron valida uma expressão cron padrão de cinco campos — minuto, hora, dia do mês, mês, dia da semana — e explica em linguagem simples o que ela significa.

A sintaxe cron é compacta e fácil de ler errado: 0 2 * * 1-5 e 0 2 * * 1,5 significam coisas muito diferentes. Um segundo par de olhos no agendamento evita tanto jobs perdidos quanto surpresas às 2 da manhã.

Objetivo

  • Validar que uma expressão tem exatamente cinco campos válidos.
  • Traduzir os campos em uma frase legível.
  • Oferecer presets comuns como ponto de partida.

Entradas

  • Uma expressão cron de cinco campos, por exemplo 15 2 * * 1-5.
  • Campos: minuto (0–59), hora (0–23), dia do mês (1–31), mês (1–12), dia da semana (0–7, onde 0 e 7 são domingo).

Como funciona

A expressão é dividida por espaços. Ela deve produzir exatamente cinco campos, e cada campo deve consistir apenas de dígitos e dos operadores * / , -.

A ferramenta não verifica profundamente as faixas numéricas (por exemplo, 99 como hora passa na verificação de caracteres) — a explicação é honesta sobre a estrutura de cinco campos.

Uma expressão válida produz uma frase que lê cada campo literalmente; uma inválida produz uma mensagem de erro clara pedindo exatamente cinco campos.

Exemplo testável

Experimente — a análise roda localmente no seu navegador.

Exemplo

Expressão: 15 2 * * 1-5

Saída esperada

Válida.
No minuto 15, hora 2, dia do mês *, mês *, dia da semana 1-5.
Interpretação: nos dias úteis, às 02:15.

Interpretando a saída

  • Se a explicação corresponde ao que você pretendia, o agendamento provavelmente está certo.
  • Atenção à armadilha clássica: dia-do-mês e dia-da-semana são combinados em OR no cron padrão (Vixie), então uma expressão com ambos restritos pode rodar com mais frequência do que o esperado.
  • Os presets (por hora, diário, semanal, a cada 5 minutos) são pontos de partida seguros.

Riscos

  • Um erro de digitação no campo minuto ou hora desloca todo o agendamento — 30 2 * * * roda às 02:30, não às 02:00.
  • Usar tanto dia-do-mês quanto dia-da-semana cria semântica OR que surpreende a maioria das pessoas.
  • Jobs que rodam quando o sistema está dormindo ou desligado são pulados ou atrasados dependendo da implementação do cron — anacron e timers do systemd se comportam de forma diferente.

Limitações

  • A ferramenta aceita apenas o formato padrão de cinco campos; ela não analisa extensões Vixie como @reboot nem a variante de seis campos com segundos.
  • A verificação de faixas é deliberadamente superficial: 99 no campo hora passa na verificação de caracteres.
  • Ela explica a expressão; não pode verificar se o comando subjacente existe ou tem as permissões certas.

Referências oficiais

FAQ

O que o campo dia da semana aceita?

0–7, onde 0 e 7 são domingo. Nomes como MON não são aceitos por este validador — use números, intervalos e listas.

Por que meu job roda com mais frequência do que eu esperava?

Se tanto dia-do-mês quanto dia-da-semana estiverem restritos, o cron Vixie roda o job quando um dos dois corresponde. Use * em um dos dois campos para obter o comportamento AND intuitivo.

Devo usar cron ou timers do systemd?

Para trabalho novo, timers do systemd oferecem melhor registro, dependências e tratamento de execuções perdidas. O cron continua adequado para agendamentos simples e bem compreendidos.