Como ler uma expressão cron
Uma expressão cron clássica do Unix tem cinco campos separados por espaços: minuto (0–59), hora (0–23), dia do mês (1–31), mês (1–12) e dia da semana (0–6, em que 0 e 7 são domingo). Uma tarefa roda sempre que o horário atual coincide com todos os campos. O asterisco significa “qualquer valor”, então * * * * * roda a cada minuto.
Dentro de um campo você pode combinar valores: a vírgula cria uma lista (1,15), o hífen cria um intervalo (9-17) e a barra adiciona um passo (*/10 significa a cada 10 unidades). A maioria das implementações também aceita nomes em inglês como JAN ou MON.
Por que o dialeto importa
Nem todo agendador fala o mesmo cron. Quartz e Spring adicionam um campo de segundos no início, o AWS EventBridge adiciona um campo de ano no fim, e Quartz e AWS numeram os dias da semana a partir de 1 = domingo em vez de 0. Quartz e AWS também exigem um ponto de interrogação no dia do mês ou no dia da semana. O CronExplain detecta o dialeto pela forma da expressão, e você pode trocá-lo quando quiser.
Próximas execuções e fusos horários
A lista é calculada pelo horário de relógio do fuso escolhido e exibida ao lado do seu horário local. O horário de verão é tratado como na maioria dos agendadores: um horário pulado quando o relógio adianta não roda naquele dia, e um horário repetido quando o relógio atrasa roda só uma vez. O GitHub Actions e as regras do AWS EventBridge usam sempre UTC, por isso a ferramenta muda para UTC nesses dialetos.
Monte uma expressão visualmente
Se prefere clicar em vez de digitar, use o construtor visual: escolha “todo”, “a cada N” ou valores específicos para cada campo e copie o resultado. Os atalhos cobrem os agendamentos mais comuns, de cinco em cinco minutos até o primeiro dia do mês, e qualquer resultado pode ser compartilhado com um link que guarda a expressão na URL.
Perguntas frequentes
- O que significa */5 * * * *?
- Roda a cada cinco minutos: nos minutos 0, 5, 10 e assim por diante, de toda hora, todos os dias. O passo */5 começa no menor valor do campo (0) e soma 5 a cada vez.
- Domingo é 0 ou 7 no cron?
- No crontab padrão, Kubernetes, GitHub Actions e Spring, tanto 0 quanto 7 são domingo. No Quartz e no AWS EventBridge a semana vai de 1 = domingo a 7 = sábado, então 0 é inválido.
- O que acontece se eu definir dia do mês e dia da semana?
- O cron padrão roda a tarefa quando qualquer um dos dois coincide, então 0 0 13 * 5 roda no dia 13 e em toda sexta-feira. Quartz e AWS não permitem os dois; por isso um deles precisa ser “?”.
- Qual fuso horário o cron usa?
- O crontab usa o fuso local do servidor, o Kubernetes usa o do controlador a menos que spec.timeZone esteja definido, e o GitHub Actions e as regras do EventBridge usam UTC. Escolha o fuso na ferramenta para ver os horários exatos.
- Minha expressão é enviada para um servidor?
- Não. A análise, as descrições e o cálculo das execuções acontecem no seu navegador. Nada do que você digita sai do seu dispositivo.