Como Ler e Entender Expressões Cron

17 Jun 2026 1,456 words

Como Ler e Entender Expressões Cron

Uma expressão cron é uma string de cinco ou seis campos que descreve um agendamento recorrente. Depois que você aprender o padrão, poderá ler qualquer expressão cron como inglês simples. Este guia ensina a decodificar cada elemento da sintaxe cron, desde simples * * * * * até expressões complexas com intervalos, passos e caracteres especiais.

Os Cinco Campos do Cron

Toda expressão cron tem cinco campos de tempo seguidos pelo comando:

┌───────── 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)
│ │ │ │ │
* * * * * <comando>

Lendo da esquerda para a direita: "Em qual minuto, em qual hora, em qual dia do mês, em qual mês e em qual dia da semana?"

Lendo Expressões Passo a Passo

Exemplos Simples

0 9 * * *

Leia como: "No minuto 0, na hora 9, todo dia do mês, todo mês, todo dia da semana." → Executa diariamente às 9:00.

*/15 * * * *

Leia como: "A cada 15 minutos de cada hora, todo dia." → Executa a cada 15 minutos.

30 8 * * 1-5

Leia como: "No minuto 30, na hora 8, todo dia do mês, todo mês, segunda a sexta." → Executa em dias úteis às 8:30.

0 0 1 * *

Leia como: "À meia-noite do primeiro dia de cada mês." → Executa mensalmente.

Exemplos Complexos

0 9-17/2 * * 1-5

Dividindo:

  • 0 — no minuto 0
  • 9-17/2 — a cada 2 horas das 9 às 17 (ou seja, 9, 11, 13, 15, 17)
  • * — todo dia do mês
  • * — todo mês
  • 1-5 — segunda a sexta

→ Executa às 9:00, 11:00, 13:00, 15:00 e 17:00 em dias úteis.

30 6 1,15 * 0

Dividindo:

  • 30 — no minuto 30
  • 6 — na hora 6
  • 1,15 — no dia 1 e dia 15 do mês
  • * — todo mês
  • 0 — apenas no domingo

→ Executa às 6:30 nos dias 1 e 15 do mês, apenas se esses dias forem também domingos.

Referência de Caracteres Especiais

* — Todo / Todos

Corresponde a qualquer valor para aquele campo.

0 * * * *     → "A cada hora"
* * * * *     → "A cada minuto"

, — Lista / Ou

Separa múltiplos valores.

0 9,12,15 * * *     → "Às 9h, 12h e 15h"

- — Intervalo

Define um intervalo inclusivo de valores.

0 9-17 * * *        → "A cada hora das 9h às 17h"
30 8 * * 1-5        → "Dias úteis às 8:30"

/ — Passo

Divide o campo em incrementos.

*/15 * * * *        → "A cada 15 minutos"
0 */2 * * *         → "A cada 2 horas"
0 0 */3 * *        → "A cada 3 dias"

Passos podem ser combinados com intervalos:

0 9-17/2 * * *     → "A cada 2 horas das 9h às 17h"
30 */4 * * 1-5     → "A cada 4 horas em dias úteis, no minuto 30"

L — Último (alguns sistemas)

Em algumas implementações cron (como Quartz), L significa "último."

0 0 L * *          → "Último dia de cada mês"

# — N-ésima ocorrência (alguns sistemas)

0 9 * * 1#1        → "Primeira segunda-feira de cada mês às 9h"

Expressões Comuns Decodificadas

Expressão Legível em Português Descrição
* * * * * A cada minuto
*/5 * * * * A cada 5 minutos
0 * * * * No minuto 0 de cada hora A cada hora
0 */2 * * * A cada 2 horas
0 9 * * * Todos os dias às 9h Diário
0 9,17 * * * Todos os dias às 9h e 17h
0 9 * * 1-5 Dias úteis às 9h
30 8 * * 1 Segundas às 8:30
0 0 1 * * Primeiro de cada mês Mensal
0 0 1 1 * 1º de janeiro à meia-noite Anual
*/15 9-17 * * 1-5 A cada 15 min durante horário comercial em dias úteis
0 0 * * 0 Todo domingo à meia-noite Semanal
0 0 */2 * * A cada 2 dias à meia-noite
0 22 * * 5 Toda sexta às 22h

Cron de Seis Campos (Com Segundos)

Algumas implementações cron (como Quartz Scheduler) usam seis campos, adicionando segundos no início:

┌───────── Segundos (0-59)
│ ┌──────── Minuto (0-59)
│ │ ┌─────── Hora (0-23)
│ │ │ ┌────── Dia do Mês (1-31)
│ │ │ │ ┌───── Mês (1-12)
│ │ │ │ │ ┌──── Dia da Semana (0-7)
│ │ │ │ │ │
* * * * * * <comando>
0 */5 * * * *     → "A cada 5 minutos, no segundo 0"
0 0 9 * * *       → "Todos os dias às 9:00:00"

Atalhos Não Padronizados

Muitas implementações cron suportam estes aliases:

@yearly   → 0 0 1 1 *     → "Uma vez por ano"
@monthly  → 0 0 1 * *     → "Uma vez por mês"
@weekly   → 0 0 * * 0     → "Uma vez por semana"
@daily    → 0 0 * * *     → "Uma vez por dia"
@hourly   → 0 * * * *     → "Uma vez por hora"
@reboot   → (não é horário) → "Executar na inicialização"

Traduzindo Cron para Legível

Quando você vir uma expressão cron desconhecida, decodifique-a campo por campo:

Expressão: 45 17 1,15 * 1-5
Campo Valor Significado
Minuto 45 No minuto 45
Hora 17 Às 17h
Dia do Mês 1,15 Nos dias 1 e 15
Mês * Todo mês
Dia da Semana 1-5 Segunda a sexta

Resultado: "Às 17:45 nos dias 1 e 15 de cada mês, apenas se esses dias forem dias úteis."

Expressão: 0 0 * * 0
Campo Valor Significado
Minuto 0 À meia-noite
Hora 0 Às 0 (meia-noite)
Dia do Mês * Todo dia
Mês * Todo mês
Dia da Semana 0 Domingo

Resultado: "Todo domingo à meia-noite."

Armadilhas Comuns ao Ler Cron

Armadilha 1: * em dia-da-semana E dia-do-mês significa ambos correspondem

Quando tanto dia-do-mês quanto dia-da-semana são *, a expressão executa em qualquer dia. Mas quando ambos têm valores específicos, o job executa se QUALQUER UM corresponder — é uma condição OU.

0 9 15 * 1

Isso executa às 9h no dia 15 do mês E em toda segunda-feira (não "dia 15 E segunda"). Para executar apenas quando ambos corresponderem, você precisa de duas entradas crontab separadas ou lógica em nível de script.

Armadilha 2: Cron usa hora local, não UTC

Cron usa a hora local do sistema. Em servidores configurados para UTC, 0 9 * * * executa às 9h UTC. Sempre verifique o fuso horário do servidor antes de definir agendamentos.

Armadilha 3: 0 e 7 são ambos domingo

No campo dia-da-semana, tanto 0 quanto 7 representam domingo. Isso é um legado de implementações Unix antigas.

Ferramenta Online

A ferramenta 解析ador de Expressão Cron no Help2Code decodifica qualquer expressão cron em uma descrição legível. Cole uma expressão como */15 9-17 * * 1-5 e veja uma análise campo por campo, próximos horários de execução e uma explicação em português claro. Construa novas expressões com a ferramenta Gerador de Comando de Job Cron.

Conclusão

Ler expressões cron é uma habilidade que se torna natural com a prática. Lembre-se dos cinco campos: minuto, hora, dia-do-mês, mês, dia-da-semana. Use o curinga * para "todo", intervalos com - para abrangências, passos com / para intervalos e listas com , para valores específicos. Decodifique qualquer expressão desconhecida campo por campo e use a ferramenta 解析ador de Expressão Cron para verificar seu entendimento.


About this article

Aprenda a ler e entender expressões cron. Decodifique qualquer agendamento crontab com nosso解析ador de expressões e domine caracteres especiais, intervalos e passos.


Related Articles


Related Tools

Help2Code Logo
Menu