OneKitTools logoOneKitTools
developer4 min de leitura

"Expressões cron explicadas: do básico ao agendamento avançado"

O que é uma expressão cron? Aprenda a sintaxe, os campos e os caracteres especiais — com exemplos reais para agendamentos comuns como "todo dia à meia-noite" ou "toda segunda às 9h".

OneKitTools Team14 de abril de 2026

O que é uma expressão cron?

Cron é um agendador de tarefas baseado em tempo integrado aos sistemas Unix/Linux. Uma expressão cron é a sintaxe que diz ao cron quando executar uma tarefa.

Você já viu: 0 0 * * *. Significa "à meia-noite, todo dia." Mas assim que você vai além do básico, a sintaxe cron fica complicada — 5 campos, segundos opcionais, diferenças entre plataformas e caracteres especiais que a maioria copia e cola sem entender.

Este guia esclarece tudo.

Os 5 (ou 6) campos

O cron padrão usa 5 campos separados por espaços:

┌──────────── minuto (0–59) │ ┌────────── hora (0–23) │ │ ┌──────── dia do mês (1–31) │ │ │ ┌────── mês (1–12) │ │ │ │ ┌──── dia da semana (0–7, 0 e 7 = domingo) │ │ │ │ │ * * * * *

Alguns sistemas (AWS EventBridge, Spring, Quartz) adicionam um campo de segundos no início, totalizando 6 campos. Verifique sua plataforma.

Caracteres especiais

CaractereSignificadoExemplo
*Todos os valores* * * * * = a cada minuto
,Múltiplos valores0 9,17 * * * = 9h e 17h
-Intervalo0 9-17 * * * = a cada hora das 9h às 17h
/Passo*/15 * * * * = a cada 15 minutos
LÚltimo0 0 L * * = último dia do mês (apenas Quartz)
?Sem valor0 0 ? * MON = segundas, qualquer dia do mês (Quartz)

Expressões cron comuns

A cada minuto

* * * * *

A cada 5 minutos

*/5 * * * *

A cada hora, em ponto

0 * * * *

Todo dia à meia-noite

0 0 * * *

Todo dia às 9h

0 9 * * *

Toda segunda-feira às 9h

0 9 * * 1

Todo dia útil (seg–sex) às 8h

0 8 * * 1-5

Todo fim de semana ao meio-dia

0 12 * * 0,6

Primeiro dia de cada mês à meia-noite

0 0 1 * *

A cada trimestre (jan, abr, jul, out) à meia-noite

0 0 1 1,4,7,10 *

A cada 30 minutos entre 9h e 17h em dias úteis

*/30 9-17 * * 1-5

As armadilhas

"A cada 2 horas" é 0 */2 * * *, não */2 * * * *

*/2 * * * * significa a cada 2 minutos. O passo se aplica ao campo em que está.

Domingo é 0 e 7

No cron padrão, 0 e 7 são ambos domingo. Evite ambiguidade — use 0 de forma consistente.

Dia do mês E dia da semana são OR, não AND

0 0 1 * 1 executa no dia 1 de cada mês E toda segunda-feira — não apenas nas segundas que caem no dia 1. Se você quer "a primeira segunda do mês", isso requer lógica de script fora do cron.

Fusos horários

O cron executa no fuso horário local do servidor, a menos que configurado de outra forma. Uma tarefa em 0 9 * * * num servidor UTC executa às 9h UTC — o que pode ser 2h ou 23h no seu fuso horário.

Sempre verifique:

timedatectl   # mostra o fuso horário atual no Linux

Atalhos nomeados (não padrão mas amplamente suportados)

AtalhoEquivalenteSignificado
@yearly0 0 1 1 *Uma vez por ano
@monthly0 0 1 * *Uma vez por mês
@weekly0 0 * * 0Uma vez por semana (domingo)
@daily0 0 * * *Uma vez por dia (meia-noite)
@hourly0 * * * *Uma vez por hora
@rebootNa inicialização do sistema

Gere e valide expressões cron

Cron Generator permite construir expressões visualmente — escolha o agendamento em linguagem simples, obtenha a expressão cron. Sem mais adivinhar se 0 9 * * 1-5 está correto.

Também funciona ao contrário: cole qualquer expressão cron e obtenha uma explicação em português de quando ela executa.

Cartão de referência rápida

# ┌──── minuto 0-59 # │ ┌─── hora 0-23 # │ │ ┌── dia 1-31 # │ │ │ ┌─ mês 1-12 # │ │ │ │ ┌ semana 0-7 (0=dom) # │ │ │ │ │ * * * * * a cada minuto 0 * * * * a cada hora 0 0 * * * todo dia à meia-noite 0 9 * * 1 toda segunda às 9h */15 * * * * a cada 15 minutos 0 0 1 * * primeiro dia de cada mês
Compartilhar