Gerador de expressão cron

Monte uma expressão cron com um formulário simples, ou cole uma e leia o que ela significa em palavras simples. As próximas 10 execuções aparecem no seu fuso horário, com as mudanças de horário de verão marcadas.

Grátis e privado. Tudo funciona no seu navegador e nada é enviado.

Como funciona

  1. Escolha um agendamentoComece por um agendamento comum ou defina cada campo no formulário: todos, a cada n, valores específicos ou um intervalo.
  2. Leia a explicaçãoA expressão é explicada em palavras simples, para você conferir se ela faz o que você queria.
  3. Confira as próximas execuçõesCompare as próximas 10 execuções no fuso horário do seu servidor e depois copie a expressão.

O que uma expressão cron significa

Uma expressão cron padrão tem cinco campos separados por espaços: minuto, hora, dia do mês, mês e dia da semana. Um asterisco significa qualquer valor, a vírgula separa uma lista (1,15), o hífen marca um intervalo (9-17) e a barra define um passo (*/15 é a cada 15 minutos). Assim, 30 2 * * 1-5 roda às 2:30 da madrugada, de segunda a sexta.

Cole qualquer expressão e a ferramenta descreve o agendamento numa frase, mostra cada campo e calcula as próximas dez execuções. Atalhos como @daily e @hourly também são reconhecidos. Se algo estiver errado, a mensagem diz o campo e a posição em vez de um erro de sintaxe vago.

Armadilhas que pegam até quem tem experiência

Quando o dia do mês e o dia da semana estão definidos ao mesmo tempo, o cron clássico roda nos dias que atendem a qualquer um dos dois, não aos dois: 0 0 13 * 5 roda em todo dia 13 e em toda sexta-feira. Se um dos dois campos começa com asterisco, como em */2, os dois precisam bater. A explicação avisa sempre que isso acontece.

O cron usa o fuso horário da máquina em que roda. Um job às 2:30 não roda na noite em que os relógios são adiantados em muitos países, e um job à 1:30 pode encontrar a mesma hora duas vezes quando os relógios são atrasados. Escolha o fuso do seu servidor na lista de execuções para ver exatamente quais dias são afetados. Meses sem o dia 31 são simplesmente pulados.

Padrão, com segundos e Quartz

O crontab do Linux, os CronJobs do Kubernetes e o GitHub Actions usam a forma de cinco campos. Algumas bibliotecas acrescentam um campo de segundos na frente. O Quartz, usado por muitos agendadores Java, tem segundos, um ano opcional, numera os dias da semana de 1 a 7 começando pelo domingo e exige ? em um dos campos de dia. Ele também acrescenta L para o último dia, W para o dia útil mais próximo e # para a enésima ocorrência de um dia da semana no mês. Escolha a sintaxe no topo; ao trocar, a expressão é convertida quando possível.

Perguntas frequentes

O que significa */5 * * * *?

Roda a cada 5 minutos, nos minutos 0, 5, 10 e assim por diante de cada hora, todos os dias.

Qual fuso horário o cron usa?

O fuso do sistema que executa o cron, que nos servidores muitas vezes é UTC. O Kubernetes e alguns agendadores em nuvem permitem definir um fuso. Escolha o fuso certo na lista de execuções para ver os horários reais.

Como rodar um job no último dia do mês?

O cron padrão não tem símbolo para isso. O Quartz aceita L no campo dia do mês, por exemplo 0 0 0 L * ?. No cron clássico, uma solução comum é rodar nos dias 28 a 31 e conferir a data no script.

Por que meu job não roda no dia 31 todo mês?

Porque muitos meses têm menos dias. O cron pula esses meses em vez de rodar no último dia.

Minha expressão é enviada para algum lugar?

Não. Tudo, inclusive os horários de execução, é calculado no seu navegador.

Funciona sem internet?

Sim. Depois que você abre a página uma vez, ela continua funcionando sem conexão com a internet.