Crontab Guru
Cinco campos separados por espaços, ou um atalho como @daily.
Cole uma expressão cron e obtenha uma explicação campo por campo, no seu próprio idioma, do que ela faz. Sem precisar lembrar a ordem dos campos ou consultar os intervalos: o guru percorre cada um dos cinco campos (minuto, hora, dia do mês, mês e dia da semana) e lê a expressão da esquerda para a direita. Útil para conferir uma linha de crontab antes de implantá-la ou para explicar uma linha herdada.
Como usar o guru
-
1
Cole a expressão
Copie qualquer expressão cron padrão de 5 campos (por exemplo `0 9 * * 1-5`) para o campo de entrada.
-
2
Leia o detalhamento
A ferramenta resume o agendamento em uma frase e depois detalha os cinco campos: minuto, hora, dia do mês, mês e dia da semana. Os números de mês e de dia da semana aparecem por nome.
-
3
Confira as próximas execuções
A última etapa lista os próximos cinco horários em que a tarefa seria disparada, calculados no seu próprio fuso horário e não no do servidor. A ferramenta também avisa quando o agendamento é mais amplo do que parece ou quando nenhuma data do calendário corresponde a ele.
-
4
Confira antes de implantar
Use a explicação para confirmar que o agendamento faz o que você deseja antes de colocá-lo no seu crontab, na configuração de CI ou em um manifesto Kubernetes.
Folha de dicas dos campos
┌───────────── minuto (0-59)
│ ┌─────────── hora (0-23)
│ │ ┌───────── dia do mês (1-31)
│ │ │ ┌─────── mês (1-12 ou JAN-DEC)
│ │ │ │ ┌───── dia da semana (0-6 ou SUN-SAT; Dom = 0 ou 7)
│ │ │ │ │
* * * * *
Operadores em expressões cron
| Operador | Significado | Exemplo |
|---|---|---|
* |
Todo valor | * * * * * |
, |
Lista de valores | 0,15,30,45 |
- |
Intervalo | 9-17 |
/ |
Passo (início/passo) | */5, 0-30/5 |
L |
Último (dia do mês ou último dia da semana, Quartz) | L, 5L |
W |
Dia útil mais próximo | 15W (Quartz) |
# |
N-ésimo dia da semana do mês | 1#3 (Quartz) |
? |
Sem valor específico | Apenas Quartz |
A ordem de leitura importa
0 */2 * * 1-5 é lido da esquerda para a direita como: minuto 0, a cada 2 horas, qualquer dia do mês, qualquer mês, de segunda a sexta. Por hábito, às vezes se lê os campos da direita para a esquerda e isso confunde; comece sempre pelo minuto.
A armadilha “a cada X minutos”
*/10 * * * * dispara nos minutos 0, 10, 20, 30, 40, 50, não “a cada 10 minutos a partir de quando o trabalho foi criado.” Os passos do cron sempre medem a partir do início do intervalo do campo. Se você implantar um trabalho às 12:03, a primeira execução será às 12:10, não às 12:13.
Para trabalhos que realmente precisam de “N minutos após a última execução,” use um agendador com um temporizador persistente (temporizadores systemd com OnUnitActiveSec, ou agendamento em nível de aplicativo com um timestamp da última execução armazenado).
Armadilhas do cron que vale conhecer
- Dia do mês + dia da semana ambos definidos: a maioria das implementações de cron trata isso como comportamento OR, provavelmente não é o que você deseja.
- Passo de 0:
*/0é inválido. - Intervalo se enrola:
22-2para horas não funciona no cron clássico; use22-23,0-2. - Fevereiro 30: uma programação como
0 0 30 2 *nunca dispara. - Ambiguidade do DST: trabalhos agendados entre 2h e 3h da manhã podem disparar duas vezes ou zero vezes em dias de transição do horário de verão.
Cron vs. agendadores modernos
O cron Unix ainda está em toda parte, mas para qualquer coisa crítica você provavelmente quer:
- temporizadores systemd: capturam execuções perdidas, suportam deslocamentos aleatórios, leem de arquivos de unidade.
- Kubernetes CronJob: declarativo, tentativas, ciente de fuso horário na versão 1.25+.
- Airflow / Prefect / Dagster: para trabalhos com dependências, tentativas, backfills, observabilidade.
- GitHub Actions schedule: cron de 5 campos, apenas UTC, intervalo mínimo de 5 minutos, entrega de melhor esforço.
O cron em si é um ótimo formato, mas um agendador ruim para trabalhos que não podem falhar.
Perguntas frequentes
Porque o dia da semana 0 é domingo no cron padrão (e 7 também é domingo, suportando ambas as convenções). A segunda-feira é 1. O Quartz numera os dias da semana de 1 a 7 com domingo = 1, o que frequentemente confunde quem transita entre dialetos.
O cron Unix clássico roda no fuso horário local do servidor, o que quer que /etc/timezone diga. Kubernetes CronJob, GitHub Actions e a maioria dos agendadores em nuvem rodam em UTC por padrão. Sempre confirme e, quando possível, use UTC para evitar surpresas do horário de verão.
O cron clássico não pode expressar isso diretamente. Solução alternativa: execute toda segunda-feira e verifique a data dentro do script: [ $(date +%d) -le 7 ] && ./job.sh. O Quartz suporta isso nativamente com 1#1.
Não. Cada agendamento precisa de sua própria linha. Mas você pode combinar vários agendamentos em uma linha com listas: 0 9,17 * * * roda às 9h e às 17h. Para agendamentos que não podem ser expressos como uma única linha, adicione várias linhas apontando para o mesmo comando.
Ferramentas relacionadas
Gerador de Cartão CSS
Crie o CSS de um contêiner de cartão: fundo, borda, raio dos cantos, espaçamento interno e sombra suave, com pré-visualização imediata e código para copiar e colar.
Referência da Tabela ASCII
Tabela ASCII completa de 0 a 127 com valores decimais, hexadecimais, octais e binários e notação de referência numérica HTML, incluindo NUL, LF e DEL.
Conversor de Tamanho de Arquivo
Converta entre bytes, KB, MB, GB, TB e as unidades binárias IEC (KiB, MiB, GiB, TiB), combinando decimal e binário como preferir.
Visualizador de Markdown
Escreva Markdown e veja a renderização HTML atualizar ao vivo. Sintaxe com estilo GitHub, incluindo tabelas, listas de tarefas, blocos de código cercados e autolinks.
Gerador de Docker Compose
Gere um docker-compose.yml a partir de definições de serviços com imagem, portas e volumes, com padrões de boas práticas.
Conversor de base numérica
Converta números entre binário, octal, decimal, hexadecimal e qualquer base personalizada de 2 a 36, com o detalhamento posicional.
Ferramenta disponível em outros idiomas
- Crontab Guru [KO]
- خبير Crontab [AR]
- Crontab Guru [ES]
- Crontab Guru [JA]
- Crontab Guru [NL]
- Crontab Guru [VI]
- Crontab Guru [FR]
- Crontab Guru [PL]
- Crontab Guru [DE]
- Crontab Guru [TH]
- Crontab Guru [SV]
- Crontab Guru [ID]
- Crontab Guru [IT]
- Crontab Guru [EN]
- Crontab Guru [RU]
- Crontab Guru [TR]
- Crontab Guru [ZH]