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
Campo
Valores
Observações
Segundo
0–59
Só Quartz, Spring e cron de 6 campos
Minuto
0–59
Primeiro campo no crontab e na AWS
Hora
0–23
Formato 24 horas
Dia do mês
1–31
L, W e LW no Quartz, Spring e AWS
Mês
1–12 ou JAN–DEC
Nomes não diferenciam maiúsculas
Dia da semana
0–7 ou SUN–SAT
Quartz e AWS: 1–7, 1 = domingo
Ano
1970–2199
Opcional no Quartz, obrigatório na AWS
Caracteres especiais
Símbolo
Significado
Exemplo
*
Qualquer valor
* * * * * — a cada minuto
,
Lista de valores
0 9,17 * * * — 09:00 e 17:00
-
Intervalo
0 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 semana
0 0 0 L * ? — último dia do mês
W
Dia útil mais próximo
0 0 9 15W * ? — dia útil mais próximo do dia 15
#
Enésimo dia da semana do mês
0 0 9 ? * 2#1 — primeira segunda-feira
Macros
Macros
crontab padrão
@yearly / @annually
0 0 1 1 *
@monthly
0 0 1 * *
@weekly
0 0 * * 0
@daily / @midnight
0 0 * * *
@hourly
0 * * * *
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.