Entenda uma programação cron antes que ela seja executada
As expressões cron são cadeias compactas de agendamento usadas por servidores, jobs de CI, plataformas de automação e scripts de manutenção. Elas são poderosas, mas um pequeno erro de digitação pode transformar uma tarefa de diária para a cada minuto, ou de dias úteis para fins de semana.
Este parser explica uma expressão cron Unix de 5 campos em linguagem simples, detalha cada campo e mostra os próximos horários de execução usando o fuso horário que você escolher na ferramenta.
Dialeto cron suportado
O parser v1 oferece suporte ao cron Unix padrão com cinco campos:
minute hour day-of-month month day-of-week - Valores de minuto de
0to59. - Valores de hora de
0to23. - Valores de dia do mês de
1to31. - Valores de mês de
1to12, além de nomes comoJANandDEC. - Valores de dia-da-semana de
0to7, além de nomes comoMONandFRI. Ambos0and7significam domingo.
Ele suporta curingas, listas separadas por vírgula, intervalos e valores de passo como */15 or 9-17/2.
O que intencionalmente não é suportado
Dialetos cron não são universais. Quartz, systemd timers, cloud schedulers, Kubernetes, GitHub Actions e plataformas de hospedagem podem adicionar seus próprios campos ou operadores especiais.
- Campos de segundos e campos de ano não são analisados como cron Unix.
- Operadores do Quartz como
?,L,W, e#são reportados como não suportados. - Macros como
@dailyand@rebootnão são expandidos. - O texto do comando após uma programação não é tratado como parte da expressão.
Use esta página como um inspetor para programações no estilo Unix. Antes de alterar automações em produção, verifique o agendador exato que executará o job.
Comportamento de fuso horário e horário de verão
Uma expressão cron não inclui um fuso horário por si só. A mesma expressão pode ser executada em momentos diferentes dependendo se o servidor usa UTC, um fuso horário do sistema local ou uma configuração de fuso horário específica do agendador.
- A pré-visualização mostra os horários de execução no fuso IANA selecionado e em UTC.
- Transições de avanço de horário podem pular horários do relógio local que não existem.
- Transições de retorno do horário de verão podem repetir um horário local; o comportamento do agendador pode variar.
- Se tanto o dia do mês quanto o dia-da-semana estiverem restritos, o cron Unix comumente usa semântica OR.
Para jobs críticos, trate a pré-visualização como uma ajuda de planejamento e confirme o comportamento no próprio agendador.
Perguntas Frequentes
Isto oferece suporte ao cron do Quartz?
Não. O parser suporta apenas o cron Unix de 5 campos. Campos de segundos no estilo Quartz, campos de ano e operadores como ?, L, W, e # são mostrados como não suportados.
Qual fuso horário uma expressão cron usa?
As expressões cron não carregam informação de fuso horário. A pré-visualização usa o fuso horário selecionado na ferramenta, mas seu servidor ou agendador pode usar um fuso diferente.
Por que dia do mês e dia-da-semana podem coincidir?
No comportamento comum do cron Unix, quando ambos os campos estão restritos, uma data pode coincidir se qualquer um dos campos corresponder. Por exemplo, 0 0 1 * MON pode ser executado no primeiro dia do mês e nas segundas-feiras.
Posso colar a parte do comando do crontab?
Cole apenas os cinco campos da programação. A ferramenta é um parser de programação, não um parser completo de crontab, portanto o texto do comando após a programação não é interpretado.