alltools.one
DevOps‱
2026-02-25
‱
11 min
‱
alltools.one Team
cronschedulingdevopsautomationlinux

Folha de ReferĂȘncia de ExpressĂ”es Cron — Agende Tarefas como um Profissional

O Cron Ă© a espinha dorsal da automação de tarefas agendadas em sistemas Unix-like. Seja para rotacionar logs, executar backups de banco de dados ou acionar pipelines CI/CD, as expressĂ”es cron definem quando essas tarefas sĂŁo executadas. A sintaxe Ă© compacta mas poderosa — e fĂĄcil de errar se vocĂȘ estiver adivinhando.

Esta referĂȘncia cobre cada parte da sintaxe cron com exemplos prĂĄticos prontos para copiar e colar. Se vocĂȘ quer construir e validar expressĂ”es de forma interativa, abra o Construtor de ExpressĂ”es Cron junto com este guia.

Sintaxe Cron: Os cinco campos

Uma expressão cron padrão consiste em cinco 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, onde 0 e 7 = Domingo)
│ │ │ │ │
* * * * *

Cada campo aceita um valor especĂ­fico, um intervalo, uma lista ou um curinga. Juntos, os cinco campos especificam um agendamento recorrente exato.

CampoValores permitidosCaracteres especiais
Minuto0–59* , - /
Hora0–23* , - /
Dia do mĂȘs1–31* , - /
MĂȘs1–12* , - /
Dia da semana0–7* , - /

Os campos de mĂȘs e dia da semana tambĂ©m aceitam abreviaçÔes de trĂȘs letras (JAN–DEC, SUN–SAT) na maioria das implementaçÔes.

Caracteres especiais explicados

Compreender quatro caracteres especiais desbloqueia todo o poder do cron:

Asterisco * — "Cada"

Corresponde a todos os valores possĂ­veis para aquele campo.

* * * * *    # Cada minuto de cada hora de cada dia

Vírgula , — "E"

Especifica uma lista de valores discretos.

0 9,12,18 * * *    # Às 9:00, 12:00 e 18:00 diariamente

HĂ­fen - — "AtĂ©"

Define um intervalo inclusivo.

0 9-17 * * *    # Cada hora das 9h Ă s 17h

Barra / — "A cada n-Ă©simo"

Define um intervalo de passo a partir do inĂ­cio do intervalo.

*/10 * * * *    # A cada 10 minutos (0, 10, 20, 30, 40, 50)

VocĂȘ pode combinar um intervalo com um passo:

0 9-17/2 * * *    # A cada 2 horas das 9h Ă s 17h (9, 11, 13, 15, 17)

Exemplos comuns de agendamento Cron

Salve esta tabela nos favoritos. Estes sĂŁo os agendamentos que vocĂȘ usarĂĄ repetidamente.

AgendamentoExpressãoExplicação
Cada minuto* * * * *Executa no inĂ­cio de cada minuto
A cada 5 minutos*/5 * * * *Minutos 0, 5, 10, 15, 
, 55
A cada 15 minutos*/15 * * * *Minutos 0, 15, 30, 45
Cada hora0 * * * *No minuto 0 de cada hora
A cada 6 horas0 */6 * * *Às 00:00, 06:00, 12:00, 18:00
Diariamente Ă  meia-noite0 0 * * *Uma vez por dia Ă s 00:00
Diariamente Ă s 3h0 3 * * *Uma vez por dia Ă s 03:00
Toda segunda Ă s 9h0 9 * * 1Semanalmente na segunda Ă s 09:00
Dias Ășteis Ă s 8h0 8 * * 1-5Segunda a sexta Ă s 08:00
Fins de semana ao meio-dia0 12 * * 0,6SĂĄbado e domingo Ă s 12:00
Primeiro de cada mĂȘs0 0 1 * *Meia-noite do dia 1 de cada mĂȘs
A cada trimestre (Jan, Abr, Jul, Out)0 0 1 1,4,7,10 *Meia-noite do 1Âș dos meses trimestrais
A cada 15 min em horĂĄrio comercial*/15 9-17 * * 1-5Dias Ășteis, 9h–17h, a cada 15 minutos

Cole qualquer expressão no Construtor de ExpressÔes Cron para visualizar os próximos horårios de execução.

PadrÔes avançados

Combinando listas e intervalos

Os campos aceitam sintaxe mista. Para executar uma tarefa Ă s 8h e 18h em dias Ășteis:

0 8,18 * * 1-5

Para direcionar meses especĂ­ficos com um passo:

0 0 1 1-12/3 *    # A cada 3 meses começando em janeiro (Jan, Abr, Jul, Out)

Dia do mĂȘs vs. Dia da semana

Quando tanto o dia do mĂȘs quanto o dia da semana estĂŁo definidos (nĂŁo *), o comportamento depende da implementação. No cron padrĂŁo, a tarefa executa se qualquer uma das condiçÔes for atendida — Ă© uma relação OU, nĂŁo E. Isso surpreende muitas pessoas.

0 0 15 * 1    # Executa no dia 15 E toda segunda — não "segunda-feira dia 15"

Execução na inicialização

Embora nĂŁo seja uma expressĂŁo cron propriamente, @reboot Ă© um atalho amplamente suportado:

@reboot /usr/local/bin/start-service.sh

Outros atalhos comuns:

AtalhoEquivalente
@yearly0 0 1 1 *
@monthly0 0 1 * *
@weekly0 0 * * 0
@daily0 0 * * *
@hourly0 * * * *

Cron em diferentes ambientes

A sintaxe de cinco campos Ă© universal, mas como vocĂȘ configura o cron varia por plataforma.

Crontab Linux

O clĂĄssico. Edite seu crontab de usuĂĄrio com crontab -e:

# Executar backup todo dia Ă s 2h
0 2 * * * /home/user/scripts/backup.sh >> /var/log/backup.log 2>&1

Tarefas cron do sistema em /etc/cron.d/ incluem um campo de usuĂĄrio extra:

0 2 * * * root /usr/local/bin/cleanup.sh

GitHub Actions

O GitHub Actions usa a mesma sintaxe de cinco campos dentro de um gatilho schedule. Todos os horĂĄrios sĂŁo UTC.

on:
  schedule:
    - cron: '0 3 * * 1-5'   # Dias Ășteis Ă s 3h UTC

Para um aprofundamento na configuração YAML, veja YAML para Kubernetes e YAML para Docker Compose.

Kubernetes CronJob

O Kubernetes encapsula expressÔes cron em um recurso CronJob:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: nightly-report
spec:
  schedule: "0 2 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - name: report
              image: reporting:latest
              command: ["python", "generate_report.py"]
          restartPolicy: OnFailure

O Kubernetes usa UTC por padrĂŁo. A partir da v1.25, vocĂȘ pode definir timeZone: "America/Sao_Paulo" na especificação do CronJob.

AWS CloudWatch (EventBridge)

A AWS usa uma sintaxe ligeiramente diferente com seis campos (adicionando segundos) e os wrappers rate() / cron():

cron(0 3 * * ? *)    # Diariamente Ă s 3h UTC

Note o caractere ? — a AWS exige isso para o dia do mĂȘs ou dia da semana quando o outro estĂĄ especificado. Isso Ă© diferente do cron padrĂŁo.

Armadilhas comuns

1. ConfusĂŁo de fuso horĂĄrio

O Cron usa o fuso horĂĄrio do sistema no Linux, mas o Kubernetes e o GitHub Actions executam em UTC. Uma tarefa agendada para 0 9 * * * serĂĄ disparada Ă s 9h UTC, que Ă© 6h no horĂĄrio de BrasĂ­lia.

Sempre verifique qual fuso horårio seu agendador usa. Para conversÔes de timestamp, nosso guia Timestamp Unix Explicado cobre os offsets UTC em detalhes.

2. ExecuçÔes sobrepostas

Se uma tarefa demora mais que o intervalo entre execuçÔes, vocĂȘ terĂĄ instĂąncias sobrepostas. Um script que leva 8 minutos em um agendamento */5 * * * * vai acumular.

SoluçÔes:

  • Use um arquivo de lock (flock no Linux)
  • Defina concurrencyPolicy: Forbid nos CronJobs do Kubernetes
  • Verifique instĂąncias em execução no inĂ­cio do seu script

3. Saída ausente e depuração

O Cron nĂŁo captura stdout por padrĂŁo. Sempre redirecione a saĂ­da:

*/5 * * * * /path/to/script.sh >> /var/log/myjob.log 2>&1

Se uma tarefa cron nĂŁo estĂĄ executando, verifique:

  • grep CRON /var/log/syslog para logs de execução
  • PermissĂ”es do arquivo do script
  • A variĂĄvel de ambiente PATH — o cron tem um PATH mĂ­nimo por padrĂŁo

4. A armadilha do "dia 31 de cada mĂȘs"

0 0 31 * *    # SĂł executa em meses com 31 dias

Isso executa em janeiro, março, maio, julho, agosto, outubro e dezembro — mas pula silenciosamente os outros cinco meses. Se vocĂȘ precisa de uma tarefa de fim de mĂȘs, considere executar no dia 1 e ajustar a lĂłgica do seu script, ou use uma ferramenta que suporte semĂąnticas de "Ășltimo dia do mĂȘs".

5. Esquecer a quebra de linha no final do crontab

Algumas implementaçÔes de cron requerem uma quebra de linha final no arquivo crontab. Se sua Ășltima entrada nĂŁo executa, adicione uma linha vazia no final.

Construindo expressÔes visualmente

Memorizar a sintaxe funciona para padrÔes comuns, mas agendamentos complexos são mais fåceis de construir visualmente. O Construtor de ExpressÔes Cron no alltools.one permite:

  • Selecionar valores para cada campo usando menus suspensos
  • Ver uma descrição legĂ­vel do agendamento
  • Visualizar os prĂłximos horĂĄrios de execução
  • Copiar a expressĂŁo final com um clique

Funciona inteiramente no seu navegador — nenhum dado Ă© enviado a qualquer servidor.

CartĂŁo de referĂȘncia rĂĄpida

Copie este bloco para a documentação do seu projeto ou wiki da equipe:

# ┌───── min (0-59)
# │ ┌───── hora (0-23)
# │ │ ┌───── dia do mĂȘs (1-31)
# │ │ │ ┌───── mĂȘs (1-12)
# │ │ │ │ ┌───── dia da semana (0-7, Dom=0 ou 7)
# │ │ │ │ │
# * * * * *

*/5 * * * *        # A cada 5 minutos
0 * * * *          # Cada hora
0 0 * * *          # Diariamente Ă  meia-noite
0 9 * * 1-5        # Dias Ășteis Ă s 9h
0 0 1 * *          # Primeiro do mĂȘs
*/15 9-17 * * 1-5  # A cada 15 min, horĂĄrio comercial

Leitura adicional


Pronto para construir sua próxima expressão cron? Abra o Construtor de ExpressÔes Cron e acerte seu agendamento de primeira.

Published on 2026-02-25
Cron Expression Cheat Sheet — Schedule Like a Pro | alltools.one