Analisador de Expressões Cron

Formato: minuto hora dia-do-mês mês dia-da-semana

Você herda um crontab e ele está cheio de 0 */2 * * 1-5, 15 4 1 * *, */30 8-18 * * *. Este analisador aceita uma expressão cron padrão de 5 campos e retorna uma descrição em inglês simples (“every 2 hours on weekdays”) além dos próximos 5 horários em que realmente será executado. Útil para entender cronogramas legados e verificar um novo antes de implantá-lo.

Como analisar uma expressão cron

  1. 1

    Cole a expressão

    Uma expressão padrão de 5 campos (`* * * * *`): minuto, hora, dia do mês, mês e dia da semana.

  2. 2

    Leia a descrição em inglês

    O analisador reformula cada campo em inglês simples, por exemplo "At minute 0, every 2 hours, on day(s) of week 1-5."

  3. 3

    Verifique a prévia da próxima execução

    5 próximos horários de execução. Se não corresponderem à sua intenção, refine a expressão.

  4. 4

    Corrija campos inválidos

    Expressões com número errado de campos ou valores fora do intervalo são rejeitadas com um erro que nomeia o campo problemático.

Decodificando cada campo

Cada campo tem seu próprio intervalo válido e caracteres especiais:

Campo Intervalo Caracteres curinga suportados
Minuto 0-59 * , - /
Hora 0-23 * , - /
Dia do mês 1-31 * , - /
Mês 1-12 * , - /
Dia da semana 0-7 * , - /
  • * = qualquer valor (* no campo dos minutos significa todos os minutos).
  • 1,5,10 = uma lista de valores.
  • 1-5 = um intervalo de valores.
  • */15 ou 0-45/15 = um passo, contado a partir do início do intervalo do campo.
  • O dia da semana 0 e 7 são ambos domingo, então as duas convenções são aceitas. Nomes de meses e dias da semana como JAN ou MON não são aceitos; use números.

Exemplos decodificados

Expressão Em inglês
0 */2 * * 1-5 At minute 0 every 2 hours, Monday through Friday
15 4 1 * * At 04:15 on the 1st day of every month
*/30 8-18 * * * Every 30 minutes between 08:00 and 18:59
0 0 1,15 * * At midnight on the 1st and 15th of every month
0 22 * * 0 At 22:00 every Sunday

O que o analisador aceita

  • Exatamente 5 campos: minuto, hora, dia do mês, mês e dia da semana. Expressões Quartz de 6 ou 7 campos (com segundos ou ano) são rejeitadas.
  • Intervalos válidos: cada valor deve caber em seu campo, por exemplo minuto 0-59, hora 0-23, dia do mês 1-31, mês 1-12 e dia da semana 0-7.
  • Passos positivos: o valor após / deve ser um número positivo (*/0 é rejeitado).
  • Sem atalhos nomeados: @daily, @reboot e atalhos semelhantes não são aceitos. Expanda-os primeiro para a forma de 5 campos (por exemplo @daily = 0 0 * * *).

Dia do mês e dia da semana combinados

Quando tanto o dia do mês quanto o dia da semana estão definidos, este analisador agenda uma execução apenas quando ambos coincidem: 0 0 1 * MON dispara somente quando o dia 1 é uma segunda-feira. A maioria das implementações de cron no Linux trata os dois campos como OU (o trabalho roda quando um deles corresponde). Verifique, portanto, a expressão contra o agendador que você realmente usa.

Nota sobre o fuso horário

Os horários da prévia são calculados com o relógio do servidor, que roda em UTC. Se seu crontab roda em uma máquina com outro fuso horário, os horários mostrados aqui podem diferir dos daquela máquina.

Perguntas frequentes

Não. Apenas expressões padrão de 5 campos são aceitas. Expressões Quartz com segundos (6 campos) ou com ano (7 campos) são rejeitadas com um erro.

Geralmente por um destes motivos: a prévia usa o relógio do servidor em UTC enquanto seu crontab roda em outro fuso horário; dia do mês e dia da semana estão ambos definidos (este analisador exige que coincidam); ou um passo que recomeça no início de cada hora ou dia.

Sim, se for uma expressão padrão de 5 campos, que é o que o Kubernetes usa (UTC por padrão). Lembre-se de que a prévia aqui usa o relógio do servidor em UTC: se o cluster rodar em outro fuso horário, os horários podem diferir.

O cron do Linux aceita atalhos nomeados: @reboot (na inicialização), @yearly / @annually (0 0 1 1 *), @monthly, @weekly, @daily, @hourly. Este analisador não os aceita; expanda o atalho para sua expressão equivalente de 5 campos antes de colá-lo aqui.

Ferramentas relacionadas