Resumo rápido
Uma expressão Cron padrão possui cinco campos:
minuto hora dia-do-mês mês dia-da-semana
Por exemplo, 30 9 * * 1-5 representa uma execução às 09:30, de segunda a sexta-feira.
Use o gerador de expressões Cron para criar um agendamento ou cole uma expressão existente no decodificador Cron para traduzi-la e ver as próximas execuções.
Como funciona uma expressão Cron
| Campo | Valores comuns | Exemplo |
|---|---|---|
| Minuto | 0–59 | */15 para cada 15 minutos |
| Hora | 0–23 | 9 para 09:00 |
| Dia do mês | 1–31 | 1 para o primeiro dia |
| Mês | 1–12 ou JAN–DEC | 6 para junho |
| Dia da semana | 0–6 ou SUN–SAT | 1-5 para dias úteis |
Operadores importantes:
*aceita qualquer valor.,cria uma lista, como1,3,5.-cria um intervalo, como1-5./define um intervalo recorrente, como*/10.
Exemplos de expressões Cron
| Agendamento | Cron Unix |
|---|---|
| A cada minuto | * * * * * |
| A cada 5 minutos | */5 * * * * |
| De hora em hora | 0 * * * * |
| Todos os dias à meia-noite | 0 0 * * * |
| Todos os dias às 09:00 | 0 9 * * * |
| Segunda a sexta às 09:00 | 0 9 * * 1-5 |
| Todo domingo à meia-noite | 0 0 * * 0 |
| Primeiro dia do mês às 07:00 | 0 7 1 * * |
Cron Unix, Spring e Quartz
O Cron tradicional do Linux usa cinco campos e começa pelos minutos. Spring e Quartz geralmente acrescentam os segundos no início e podem incluir o ano no final.
| Sistema | Exemplo diário às 02:00 |
|---|---|
| Unix/Linux | 0 2 * * * |
| Spring/Quartz | 0 0 2 * * ? |
Não copie uma expressão de cinco campos diretamente para um sistema que exige seis campos. Confira sempre a documentação do agendador usado pelo seu aplicativo.
CronJob no Kubernetes
Um CronJob usa uma expressão Cron em spec.schedule. Quando o cluster oferece suporte, defina spec.timeZone com um
fuso IANA, como America/Sao_Paulo, para evitar dúvidas entre UTC e o horário local.
Também é recomendável:
- Definir
concurrencyPolicy: Forbidquando execuções simultâneas forem perigosas. - Configurar limites de histórico para jobs concluídos e com falha.
- Registrar erros e monitorar execuções que não começaram.
- Testar o agendamento em um ambiente seguro antes de publicar.
Problemas comuns
- Usar caminhos relativos em comandos executados pelo Cron.
- Esquecer que o ambiente do Cron possui poucas variáveis.
- Misturar expressões de cinco e seis campos.
- Ignorar o fuso horário ou mudanças de horário local.
- Usar
?,L,Wou#em uma implementação que não oferece suporte.
Para validar antes de publicar, use o decodificador Cron e confira se a explicação e as próximas execuções correspondem ao comportamento esperado.