Gerador de Expressões Cron

0-59

0-23

1-31

1-12

0-7 (0,7=Dom)

Próximo

A sintaxe cron é concisa e fácil de errar: 0 */6 * * * roda a cada seis horas, enquanto */6 0 * * * dispara dez vezes, apenas durante a primeira hora após a meia-noite. Este gerador permite escolher um cronograma visualmente (a cada 15 minutos, dias de semana às 9h, no 1º de cada mês) e gera a expressão exata com uma descrição em linguagem simples do que ela significa.

Como construir uma expressão cron

  1. 1

    Escolha um preset ou digite os campos

    A cada minuto, a cada hora, diariamente à meia-noite, semanalmente aos domingos e no dia 1 de cada mês estão a um clique. Para qualquer outra coisa, digite os valores diretamente nos cinco campos.

  2. 2

    Refine o cronograma

    Minutos, horas, dias do mês, meses, dias da semana específicos. Intervalos (9-17), listas (1,15) e passos (*/6) são todos suportados.

  3. 3

    Leia a expressão

    O gerador sempre emite o formato cron padrão de 5 campos, além de uma descrição em linguagem simples do cronograma.

  4. 4

    Confira o dialeto

    Os dialetos diferem (Quartz, AWS EventBridge, Kubernetes). Confirme se a expressão corresponde ao que o seu agendador espera.

Os cinco campos

*  *  *  *  *
│  │  │  │  │
│  │  │  │  └── Dia da semana (0-6, Domingo=0, ou DOM-SAB)
│  │  │  └───── Mês (1-12, ou JAN-DEC)
│  │  └──────── Dia do mês (1-31)
│  └─────────── Hora (0-23)
└────────────── Minuto (0-59)

Cada campo aceita:

  • Um número específico: 5
  • Uma lista: 1,15,30
  • Um intervalo: 9-17
  • Um passo: */10 (a cada 10) ou 0-30/5 (a cada 5 de 0 a 30)
  • Coringa: * (todos os valores)

Expressões comuns

Cronograma Expressão cron
A cada minuto * * * * *
A cada 15 minutos */15 * * * *
A cada hora na hora 0 * * * *
A cada 6 horas 0 */6 * * *
A cada dia às 2:30 AM 30 2 * * *
A cada dia de semana às 9 AM 0 9 * * 1-5
A cada segunda-feira às 8 AM 0 8 * * 1
Primeiro dia de cada mês, 3 AM 0 3 1 * *
A cada 15 minutos, dias de semana 9-17 */15 9-17 * * 1-5
Meio-dia no 1º e 15º 0 12 1,15 * *
A cada domingo à meia-noite 0 0 * * 0

O problema do dia do mês + dia da semana

No cron padrão, se ambos dia do mês e dia da semana forem especificados (não *), o trabalho é executado quando qualquer um deles corresponder (OU, não E). 0 0 1 * SEG é executado no 1º de cada mês e em todas as segundas-feiras, não apenas quando o 1º é uma segunda-feira.

O cron Vixie e a maioria das distribuições Linux seguem essa regra de OU. Quartz (Java) e alguns outros usam E. Em caso de dúvida, teste a expressão com uma execução de teste (dry run) ou um job de teste no seu agendador.

Diferenças de dialeto

  • Cron padrão (Linux): 5 campos, dia da semana 0-6 (Domingo = 0 ou 7).
  • Quartz (Spring, aplicativos Java): 6-7 campos, com segundos como campo 1 e ano opcional. Dia da semana 1-7 (Domingo = 1).
  • Cron do AWS EventBridge: 6 campos, com ano. Dia da semana e dia do mês devem ser mutuamente exclusivos (um deve ser ?).
  • GitHub Actions: cron padrão de 5 campos, intervalo mínimo de 5 minutos, apenas UTC.
  • Kubernetes CronJob: cron padrão de 5 campos, UTC por padrão.

Sempre confirme qual dialeto seu agendador usa.

Fusos horários

O cron clássico é executado no fuso horário local do servidor. Isso pode causar problemas durante as transições de horário de verão: um trabalho às 2:30 AM pode ser executado duas vezes ou não ser executado em dias de mudança. Agendadores modernos (timers do systemd, Kubernetes, EventBridge) permitem que você especifique o fuso horário explicitamente, use UTC, a menos que tenha um bom motivo para não fazê-lo.

Perguntas frequentes

A cada 5 unidades do campo, começando de 0. No campo de minutos */5 é acionado nos minutos 0, 5, 10, 15, …, 55. É uma forma abreviada de 0,5,10,15,20,25,30,35,40,45,50,55.

O cron não pode expressar intervalos arbitrários que não se dividem uniformemente em 60 minutos ou 24 horas. Para 90 minutos, liste os horários específicos: 0 0,9 * * * combinado com linhas adicionais, ou mude para um agendador que suporte intervalos arbitrários (timers do systemd, anacron).

À meia-noite. A ordem dos campos é minuto-hora, então 0 0 significa “minuto 0 da hora 0”. Ao meio-dia seria 0 12 * * *.

O cron padrão ignora, execuções perdidas não são reexecutadas. O anacron recupera trabalhos diários, semanais ou mensais perdidos na próxima inicialização. Os CronJobs do Kubernetes têm startingDeadlineSeconds e concurrencyPolicy para lidar com janelas perdidas explicitamente.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas