Anúncios incomodam? Ir Sem anúncios Hoje

Pare de buscar sintaxe de Cron — há um gerador para isso

Atualizado em

As expressões cron são um desses itens que você usa constantemente, mas raramente consiga memorizar. Aqui está o que realmente significa cada um dos cinco campos, os erros que afetam as pessoas e por que um gerador de expressão cron on-line é a abordagem mais inteligente.

Pare de procurar a sintaxe de cron — há um gerador para isso 1
ANUNCIADO Remover?

São 2 da manhã. Uma implantação está agendada para as 6 da manhã. Você precisa verificar novamente se o job cron realmente disparará no horário certo. Então abre uma nova aba e digita "sintaxe de cron" no Google. De novo.

Este é um rito de passagem. Todo desenvolvedor que já tocou um servidor Linux já o fez pelo menos uma vez — e a maioria de nós o fez mais vezes do que gostaríamos de admitir. As expressões de cron são uma dessas coisas que usamos constantemente, mas que nunca conseguimos realmente memorizar. A sintaxe está em uma zona desconfortável entre 'muito simples para ser procurada' e 'suficientemente específica para ser mal interpretada'.

Existe uma maneira melhor. Use um gerador online de expressões de cron e deixe a ferramenta lidar com a sintaxe enquanto você se concentra no que realmente importa.

Por que a Sintaxe de Cron Refusa se Gravar

O cron tem cinco campos. Cinco. Isso é tudo. E ainda assim, a ordem confunde as pessoas toda vez:

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

O problema não é que é difícil — é que há apenas os caracteres especiais suficientes para introduzir ambiguidade. É */5 "a cada 5 minutos" ou "no minuto 5"? O cron 0 9 * * 1-5 executa às 9h ou às 9h da noite? O que acontece se você esquecer que os meses são indexados a partir de 1, mas os dias da semana começam em 0?

Essas não são armadilhas para iniciantes. São armadilhas para todos. Um job cron mal configurado é uma das formas mais silenciosas de introduzir um incidente em produção — o tipo em que nada cai imediatamente, ele simplesmente não executa, e você só percebe três dias depois.

Os Cinco Campos, Explicados Sem Cerimônia

A versão prática:

  • Minuto (0–59) — O minuto do horário quando o job é executado. 30 significa a marca dos 30 minutos. */15 significa a cada 15 minutos.
  • Hora (0–23) — Usa o horário de 24 horas. 9 é 9h da manhã. 17 é 17h. Sem complicações de AM/PM.
  • Dia do mês (1–31) — Qual dia do calendário. 1 é o primeiro dia do mês. 15 é o dia 15.
  • Mês (1–12) — Janeiro é 1, Dezembro é 12. Você também pode usar nomes: JAN, FEB, etc.
  • Dia da semana (0–6 ou 1–7) — Domingo pode ser 0 ou 7 dependendo da implementação do cron. Segunda-feira é sempre 1. Esse é o campo que causa mais confusão.

Os Caracteres Especiais que Importam

  • * — Todos os valores possíveis (cada minuto, cada hora, etc.)
  • */n — Cada nintervalo. */5 no campo de minutos significa a cada 5 minutos.
  • a-b — Um intervalo. 1-5 no campo de dia da semana significa de segunda a sexta-feira.
  • a,b,c — Uma lista. 1,3,5 significa segunda, terça e sexta.
  • @reboot, @hourly, @daily — Alias abreviadas. Não são suportadas em todos os lugares.

Erros Comuns que Afetam as Pessoas

1. Esquecer o Fuso Horário

O cron executa no fuso horário local do servidor. Se o seu servidor estiver em UTC e você estiver em Nova York, 0 9 * * * não executa às 9h da manhã do horário este do Estado — executa às 4h ou 5h, dependendo do horário de verão. Sempre saiba o fuso horário do seu servidor. Sempre.

2. Usar tanto o Dia do Mês quanto o Dia da Semana

Se você especificar um valor nos dois campos de dia do mês e e dia da semana (em vez de * em um deles), a maioria das implementações do cron trata isso como uma OR — o job executa quando qualquer condição for atendida. Isso quase nunca é o que você deseja.

3. Esperar que */1 Signifique "Uma vez"

*/1 é o mesmo que *. Isso significa "todas as vezes". Não há forma de expressar "executar uma vez" no cron padrão — para isso, você usaria at ou um temporizador systemd de uma vez.

4. Não Testar Antes de Deploys

O cron não dá feedback imediato. Você escreve a expressão, salva o crontab e espera. Se estiver errado, você percebe às 3 da manhã quando o backup agendado não executa. Por isso, usar um calculador online de próxima execução de cron antes de fazer o deploy vale os 30 segundos que leva.

Use um Gerador de Expressão de Cron em vez disso

A dica honesta: pare de tentar escrever expressões de cron do zero da memória. Use um gerador. Isso não é fraqueza — é a forma de evitar erros estúpidos em produção.

O gerador de expressão de cron no IOTools você pode construir qualquer expressão visualmente — escolha seu intervalo de minutos, hora, dia da semana e ele mostrará a expressão exata e uma explicação em linguagem comum de quando ela será executada. Sem necessidade de memorização, sem abas de documentação abertas.

Uma vez que tenha a expressão, passe por um calculador online de próxima execução de cron. Cole a expressão, obtenha as próximas 5 a 10 execuções agendadas. Isso leva cinco segundos e irá dizer imediatamente se você agendou acidentalmente o job de limpeza para executar a cada minuto em vez de uma vez por dia.

Essa segunda verificação é a que a maioria das pessoas pula. Não a pule.

Referência Rápida: Expressões que Você Usará de Fato

ExpressãoSignificado
* * * * *A cada minuto
0 * * * *A cada hora, às horas
0 9 * * *A cada dia às 9:00 da manhã
0 9 * * 1-5Nos dias úteis às 9:00 da manhã
*/15 * * * *A cada 15 minutos
0 0 * * 0A cada domingo às meia-noite
0 0 1 * *No primeiro dia de cada mês às meia-noite
30 4 1,15 * *Nos dias 1 e 15 do mês às 4:30 da manhã
0 22 * * 1-5Nos dias úteis às 22:00
@dailyUma vez por dia às meia-noite (abreviação)
Quer eliminar anúncios? Fique sem anúncios hoje mesmo

Instale nossas extensões

Adicione ferramentas de IO ao seu navegador favorito para acesso instantâneo e pesquisa mais rápida

Ao Extensão do Chrome Ao Extensão de Borda Ao Extensão Firefox Ao Extensão Opera

O placar chegou!

Placar é uma forma divertida de acompanhar seus jogos, todos os dados são armazenados em seu navegador. Mais recursos serão lançados em breve!

ANUNCIADO Remover?
ANUNCIADO Remover?
ANUNCIADO Remover?

Notícias com destaques técnicos

Envolver-se

Ajude-nos a continuar fornecendo ferramentas gratuitas valiosas

Compre-me um café
ANUNCIADO Remover?