Ir para o conteúdo
OpsKit

Analisador de expressões cron

Cole uma expressão cron e veja quando ela realmente dispara. Cada campo é destrinchado e os horários aparecem no fuso que o seu agendador usa — que é de onde vem a maioria das surpresas com cron.

Agendamentos comuns

Próximas execuções

Detalhamento dos campos

CampoValorCorresponde a
Minuto00
Hora99
Dia do mês*todos os valores
Mês*todos os valores
Dia da semana1-5seg, ter, qua, qui, sex

Tudo acontece no seu navegador. Esta página é um arquivo estático. O que você digita fica na aba, nunca é enviado a um servidor e some quando você fecha — então colar um token ou uma configuração real é seguro.

Quando você precisa disto

  • Ao escrever um CronJob do Kubernetes e precisar confirmar que ele dispara às 9h de Brasília, não às 9h UTC.
  • Ao revisar um crontab herdado em que ninguém lembra o que significa 30 2 * * 0.
  • Ao verificar se um job em lote e a janela de backup não vão colidir no mês que vem.

Exemplos resolvidos

Todo dia útil às 09:00

Entrada
0 9 * * 1-5
Resultado
Segunda a sexta às 09:00

O dia da semana vai de 0 a 6, com domingo como 0. Tanto 0 quanto 7 significam domingo.

A cada 15 minutos no horário comercial

Entrada
*/15 9-18 * * 1-5
Resultado
09:00, 09:15 … 18:45, apenas dias úteis

O passo se aplica dentro do intervalo, então para depois das 18:45 em vez de rodar a noite toda.

A que pega todo mundo de surpresa

Entrada
0 0 1 * MON
Resultado
Todo dia 1º do mês E toda segunda-feira

Quando os dois campos de dia estão restritos, o cron combina com OU em vez de exigir ambos.

Onde as pessoas erram

Supor que o contêiner usa o seu fuso

Um CronJob do Kubernetes sem o campo timeZone usa o fuso do controlador, normalmente UTC. Um agendamento às 09:00 roda então às 06:00 em Brasília.

Ler `*/5` no campo da hora como cinco em cinco horas

O passo divide o intervalo inteiro a partir de 0, então */5 no campo da hora significa 0, 5, 10, 15 e 20 — não de cinco em cinco horas a partir de agora.

Misturar dia do mês e dia da semana

Restringir os dois faz o agendamento disparar mais vezes, não menos. Deixe um deles como * a menos que você queira mesmo a união.

Perguntas frequentes

Quantos campos uma expressão cron deve ter?

O cron padrão do Unix e o CronJob do Kubernetes usam 5: minuto, hora, dia do mês, mês e dia da semana. O AWS EventBridge acrescenta um sexto campo de ano e exige um ? em um dos dois campos de dia. O Quartz coloca os segundos primeiro, totalizando 6 ou 7.

Por que meu CronJob do Kubernetes dispara na hora errada?

A menos que você defina spec.timeZone, o agendamento é interpretado no fuso do kube-controller-manager — normalmente UTC. Defina explicitamente ou escreva o agendamento em UTC e documente isso.

O que significa @daily?

É atalho para 0 0 * * *, meia-noite todos os dias. Os outros atalhos são @hourly, @weekly, @monthly e @yearly. @reboot é diferente: roda na inicialização e não tem agendamento.

Ferramentas relacionadas