Pare de buscar sintaxe de Cron — há um gerador para isso
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.
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.
30significa a marca dos 30 minutos.*/15significa 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
0ou7dependendo da implementação do cron. Segunda-feira é sempre1. 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.*/5no campo de minutos significa a cada 5 minutos.a-b— Um intervalo.1-5no campo de dia da semana significa de segunda a sexta-feira.a,b,c— Uma lista.1,3,5significa 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ão | Significado |
|---|---|
* * * * * | A cada minuto |
0 * * * * | A cada hora, às horas |
0 9 * * * | A cada dia às 9:00 da manhã |
0 9 * * 1-5 | Nos dias úteis às 9:00 da manhã |
*/15 * * * * | A cada 15 minutos |
0 0 * * 0 | A 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-5 | Nos dias úteis às 22:00 |
@daily | Uma vez por dia às meia-noite (abreviação) |
Instale nossas extensões
Adicione ferramentas de IO ao seu navegador favorito para acesso instantâneo e pesquisa mais rápida
恵 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!
Ferramentas essenciais
Ver tudo Novas chegadas
Ver tudoAtualizar: Nosso ferramenta mais recente foi adicionado em 5 de maio de 2026
