Desenvolvimento

Expressões Cron Explicadas: 15 Agendamentos Reais e as Armadilhas de Fuso Horário

A sintaxe do cron cabe em uma linha e, mesmo assim, pega todo mundo em algum momento, geralmente às 2 da manhã na noite em que o horário de verão muda. Veja como funcionam os cinco campos, uma lista de agendamentos para copiar e as armadilhas que vale conhecer.

Iniciante · 7 min de leitura · Atualizado em 30 de outubro de 2026

Expressões Cron Explicadas: 15 Agendamentos Reais e as Armadilhas de Fuso Horário

Os cinco campos

┌──────── minute (0–59)
│ ┌────── hour (0–23)
│ │ ┌──── day of month (1–31)
│ │ │ ┌── month (1–12)
│ │ │ │ ┌ day of week (0–6, Sunday = 0)
* * * * *

Cada campo aceita um valor (5), uma lista (1,15), um intervalo (1-5), um passo (*/10) ou * para todos os valores. Alguns sistemas (Quartz, AWS EventBridge) adicionam um campo de segundos ou de ano. Confira qual versão você está usando.

Agendamentos para copiar

ExpressãoExecuta
*/5 * * * *A cada 5 minutos
0 * * * *A cada hora, em ponto
15 */2 * * *Aos 15 minutos, a cada 2 horas
0 9 * * *Todo dia às 09:00
30 2 * * *Todo dia às 02:30 (veja a armadilha do horário de verão abaixo)
0 9 * * 1-5Dias úteis às 09:00
0 18 * * 5Sextas-feiras às 18:00
0 0 * * 0Domingos à meia-noite
0 0 1 * *Primeiro dia de cada mês
0 0 1 1 *Uma vez por ano, em 1º de janeiro
0 8 1,15 * *Dias 1 e 15 às 08:00
*/15 9-17 * * 1-5A cada 15 minutos no horário comercial
0 0 * * 6,0Meia-noite nos fins de semana
0 3 * 1,4,7,10 *Todo dia às 03:00 no primeiro mês de cada trimestre
0 12 * * *Todo dia ao meio-dia

Monte ou traduza qualquer expressão para português simples com o Gerador de Expressões Cron, que também mostra os próximos horários de execução.

A armadilha do dia do mês x dia da semana

Quando os campos de dia do mês e dia da semana estão ambos restritos, o cron padrão executa quando qualquer um dos dois coincide, não os dois ao mesmo tempo. 0 9 13 * 5 roda no dia 13 de todo mês e em toda sexta-feira, não só na sexta-feira 13. Para rodar no último dia útil ou na primeira segunda-feira, agende o job diariamente e verifique a data no seu script, ou use um agendador com extensões como L e #.

Fusos horários e horário de verão

  • Servidores e CI rodam em UTC. Os agendamentos do GitHub Actions, a maioria dos containers e os agendadores de nuvem usam UTC. 09:00 em Nova York é 0 14 * * * no inverno e 0 13 * * * no horário de verão. Converta com o Conversor de Fuso Horário, ou veja vários fusos ao mesmo tempo no Relógio Mundial.
  • Jobs entre 01:00 e 03:00 no horário local são arriscados. Quando os relógios avançam, 02:30 não existe e o job pode ser pulado; quando voltam, ele pode rodar duas vezes. Agende os jobs críticos fora dessa janela, ou rode o agendador em UTC.
  • Agendamentos do GitHub Actions podem atrasar alguns minutos em horários de pico e são desativados em repositórios sem atividade por 60 dias. Gere um workflow com o Gerador de GitHub Actions.

Perguntas frequentes

O que significa */5 no cron?
Cada quinto valor daquele campo. No campo de minutos, */5 significa os minutos 0, 5, 10 … 55, ou seja, a cada cinco minutos.
O domingo é 0 ou 7?
Os dois funcionam na maioria das implementações de cron: 0 e 7 significam domingo. Use 0 para garantir portabilidade.
Qual fuso horário o cron usa?
O fuso horário da máquina ou do agendador. O cron do Linux usa o fuso horário do sistema (CRON_TZ pode substituí-lo em algumas versões); o GitHub Actions e a maioria dos agendadores em nuvem usam UTC.

Continue lendo