Pular para o conteúdo
CronExplain

Guia rápido de sintaxe cron

Uma referência de uma página para a sintaxe cron dos dialetos mais comuns: quais campos existem, que valores aceitam e o que cada caractere especial faz. Teste qualquer exemplo no explicador.

Campos e valores permitidos

CampoValoresObservações
Segundo0–59Só Quartz, Spring e cron de 6 campos
Minuto0–59Primeiro campo no crontab e na AWS
Hora0–23Formato 24 horas
Dia do mês1–31L, W e LW no Quartz, Spring e AWS
Mês1–12 ou JAN–DECNomes não diferenciam maiúsculas
Dia da semana0–7 ou SUN–SATQuartz e AWS: 1–7, 1 = domingo
Ano1970–2199Opcional no Quartz, obrigatório na AWS

Caracteres especiais

SímboloSignificadoExemplo
*Qualquer valor* * * * * — a cada minuto
,Lista de valores0 9,17 * * * — 09:00 e 17:00
-Intervalo0 9 * * 1-5 — dias úteis às 09:00
/Passo*/15 * * * * — a cada 15 minutos
?Sem valor específico (campos de dia)0 0 12 ? * MON — Quartz
LÚltimo dia / último dia da semana0 0 0 L * ? — último dia do mês
WDia útil mais próximo0 0 9 15W * ? — dia útil mais próximo do dia 15
#Enésimo dia da semana do mês0 0 9 ? * 2#1 — primeira segunda-feira

Macros

Macroscrontab padrão
@yearly / @annually0 0 1 1 *
@monthly0 0 1 * *
@weekly0 0 * * 0
@daily / @midnight0 0 * * *
@hourly0 * * * *

Ordem de leitura

Leia a expressão da menor unidade para a maior: 30 2 * * 1 é o minuto 30 da hora 2 de qualquer dia do mês, em qualquer mês, quando o dia da semana é segunda-feira — ou seja, 02:30 toda segunda. No Quartz e no Spring, acrescente o campo de segundos no início; na AWS, o ano no fim.

Armadilhas comuns

*/7 no campo de minutos não significa “a cada sete minutos para sempre”: o passo recomeça a cada hora, então dispara em 0, 7, … 56 e de novo em 0. Restringir os dois campos de dia no crontab significa que basta um deles coincidir. E 0 no dia da semana é inválido no Quartz e na AWS, onde a semana começa em 1.

Perguntas frequentes

Qual é a ordem dos campos do cron?
Minuto, hora, dia do mês, mês e dia da semana. Quartz e Spring colocam os segundos na frente; a AWS adiciona um ano no fim.
O que significa o ponto de interrogação no cron?
“Sem valor específico”. Quartz e AWS o exigem em um dos dois campos de dia; o crontab padrão não o aceita.
Como escrever “a cada 90 minutos”?
O cron não consegue expressar numa linha só intervalos que não dividem a hora ou o dia exatamente. Use duas entradas, como 0 0-21/3 * * * e 30 1-22/3 * * *.
Nomes de meses e dias diferenciam maiúsculas?
Não. JAN, Jan e jan são equivalentes em todos os dialetos abordados aqui.