Pack Camo

Gerador de Expressões Cron

Monte e entenda agendamentos cron em palavras simples, com as próximas execuções. Tudo roda localmente — nada é enviado para servidor nenhum.

Entrada
Cron expression · schedule picker
Saída
Plain-language schedule · next run times
Às 9:00, em segunda-feira a sexta-feira.

* qualquer · , lista · - intervalo · / passo · nomes JAN–DEC e SUN–SAT · 7 também é domingo

Próximas 10 execuções

Horários pulados pelo horário de verão rodam logo após a mudança; horários repetidos rodam uma vez, exceto com hora curinga.

Sintaxe crontab padrão. Quartz e AWS EventBridge usam campos diferentes (segundos, anos, ? e 1 = domingo).

Procurando padrões em texto em vez de horários? Abrir o Regex Tester

Monte e entenda expressões cron

Este gerador de expressões cron transforma um agendamento em sintaxe crontab e vice-versa. Digite ou cole uma expressão para lê-la como uma frase simples, ou monte uma campo a campo com os controles, e confira as próximas dez execuções em qualquer fuso horário, já considerando as mudanças do horário de verão. Ele segue as regras do cron de todo servidor Linux, inclusive as que pegam as pessoas desprevenidas, e tudo é calculado no seu navegador.

Como escrever uma expressão cron

  1. Comece por um preset como Dias úteis às 9:00, ou digite uma expressão como */15 9-17 * * 1-5.
  2. Leia a frase abaixo da entrada para confirmar que o agendamento significa o que você pensa.
  3. Ajuste um campo no construtor: escolha minuto, hora, dia do mês, mês ou dia da semana e depois todo, a cada N, valores específicos ou um intervalo. A expressão se atualiza a cada clique.
  4. Escolha o fuso horário que seu servidor ou agendador usa, confira as próximas execuções e copie a expressão para o seu crontab, workflow de CI ou agendador de tarefas.

Sintaxe cron: os cinco campos

Uma linha padrão do crontab tem cinco campos separados por espaços, seguidos do comando: minute hour day-of-month month day-of-week. Alguns agendadores, como node-cron e Spring, aceitam um sexto campo opcional para segundos no início; esta ferramenta lê as duas formas.

Minuto
0–59
Hora
0–23, no formato de 24 horas
Dia do mês
1–31
Mês
1–12 ou JAN–DEC
Dia da semana
0–6 ou SUN–SAT, em que 0 é domingo e 7 também é aceito como domingo
Segundos (opcional)
0–59, como sexto campo antes do minuto

Caracteres especiais e atalhos

  • * significa todos os valores: * * * * * roda a cada minuto.
  • , lista valores: 0 8,12,18 * * * roda às 08:00, 12:00 e 18:00.
  • - é um intervalo: 0 9 * * 1-5 roda às 09:00 de segunda a sexta.
  • / é um passo: */5 * * * * é a cada cinco minutos, e 1-10/2 significa 1, 3, 5, 7 e 9.
  • Atalhos: @hourly, @daily (ou @midnight), @weekly, @monthly e @yearly (ou @annually). @reboot roda uma vez quando o daemon do cron inicia, então não tem próxima execução.

A armadilha do dia do mês e do dia da semana

Quando os dois campos de dia estão restritos, o cron roda a tarefa quando qualquer um deles corresponde, não quando os dois correspondem. 0 0 13 * 5 roda, portanto, no dia 13 de todo mês e em toda sexta-feira, e não só na sexta-feira 13. Se um dos campos começa com *, os dois são combinados com E, como você esperaria. A explicação e as execuções aqui seguem essa regra à risca.

Dias que não existem em um mês são simplesmente pulados: 0 0 31 * * só roda em meses com 31 dias, e 0 0 29 2 * só roda em anos bissextos. Para rodar no último dia de todo mês no cron puro, agende os dias 28–31 e teste a data no comando.

Exemplos de agendamento cron

Cole qualquer um destes no gerador para lê-lo como frase e ver exatamente quando vai disparar a seguir. Um agendamento que parece certo na sua cabeça merece ser conferido com datas reais antes de ir para produção, principalmente um que roda mensal ou anualmente e levaria semanas para revelar um erro.

*/10 * * * *
A cada 10 minutos, na hora cheia e aos 10, 20, 30, 40 e 50 minutos.
0 */6 * * *
A cada seis horas: às 00:00, 06:00, 12:00 e 18:00.
30 2 * * *
Toda noite às 02:30, um horário comum para backups (mas veja a nota sobre horário de verão abaixo).
0 9 * * MON-FRI
Às 09:00 nos dias úteis.
0 0 1 * *
À meia-noite do primeiro dia de cada mês, o mesmo que @monthly.
0 0 1 1,4,7,10 *
À meia-noite no início de cada trimestre.
*/30 * * * * *
A cada 30 segundos, no formato de seis campos com segundos.

Fusos horários e horário de verão

O cron usa o relógio da máquina em que roda, que na maioria dos servidores está em UTC. Escolha esse fuso na lista de próximas execuções para ver o que a sua tarefa vai realmente fazer. Nas mudanças de horário de verão, um horário pulado quando o relógio adianta roda logo depois da mudança (02:30 vira 03:30), e um horário repetido quando o relógio atrasa roda uma vez; tarefas cujo campo de hora é curinga continuam rodando nas duas cópias da hora repetida, como faz o Vixie cron.

Outros agendadores usam outros dialetos. Quartz (Java) e AWS EventBridge usam seis ou sete campos com segundos e anos, exigem ? em um dos dois campos de dia e contam os dias da semana a partir de 1 para domingo; GitHub Actions e Kubernetes CronJobs usam os cinco campos padrão em UTC. Confira qual formato sua plataforma espera antes de colar.

Testando um padrão em vez de um agendamento? Experimente o Regex Tester.

Perguntas frequentes

O que significa * * * * * no cron?
Cinco asteriscos significam todo minuto de toda hora de todo dia. É o agendamento mais frequente que o cron padrão permite; algo mais frequente exige um agendador com campo de segundos.
Como rodar uma tarefa cron a cada 5 minutos?
Use */5 * * * *. O passo */5 no campo de minuto corresponde aos minutos 0, 5, 10 e assim por diante até 55.
Como rodar uma tarefa cron todo dia à meia-noite?
Use 0 0 * * *, ou o atalho @daily (também escrito @midnight). Lembre que a meia-noite é no fuso horário do servidor que roda o cron, muitas vezes UTC.
Como agendar uma tarefa cron só em dias úteis?
Coloque 1-5 no campo de dia da semana, por exemplo 0 9 * * 1-5 para 09:00 de segunda a sexta. MON-FRI também funciona.
Domingo é 0 ou 7 no cron?
Os dois. O cron padrão aceita 0 e 7 para domingo, além dos nomes SUN a SAT. Quartz e AWS são diferentes: numeram os dias de 1 a 7 começando pelo domingo.
Por que minha tarefa cron roda em mais dias do que eu esperava?
Se você define tanto o dia do mês quanto o dia da semana, o cron roda quando qualquer um deles corresponde. Coloque * em um dos dois campos para exigir só o outro.
Qual fuso horário o cron usa?
O fuso horário do sistema da máquina, a menos que o crontab defina CRON_TZ ou o agendador tenha configuração própria. Agendadores na nuvem como o GitHub Actions usam UTC.
O cron aceita segundos?
O crontab padrão não; sua menor unidade é o minuto. Bibliotecas como node-cron, Spring e Quartz aceitam um campo extra de segundos no início, que esta ferramenta também entende.