Analisador de Expressões Cron e Próximas Execuções
Analisa uma expressão cron (minuto hora dia mês dia da semana) e mostra o agendamento em linguagem simples. Suporta passos, intervalos e listas, e calcula as próximas 5 execuções. Útil para ler um crontab ou o "schedule" do GitHub Actions.
Sintaxe da expressão cron (5 campos)
Uma expressão cron tem 5 campos separados por espaço, da esquerda para a direita: minuto, hora, dia do mês, mês e dia da semana. Cada campo aceita os caracteres especiais abaixo.
| Posição | Campo | Valores permitidos |
|---|---|---|
| 1 | Minuto | 0-59 |
| 2 | Hora | 0-23 |
| 3 | Dia do mês | 1-31 |
| 4 | Mês | 1-12 |
| 5 | Dia da semana | 0-7 |
O dia da semana costuma ser 0 = domingo a 6 = sábado, mas esta ferramenta também aceita 7 como alias de domingo, usado por algumas implementações de cron (é tratado igual ao 0).
Cada campo aceita "*" (qualquer valor), listas separadas por vírgula (1,15,30), intervalos com hífen (1-5) e passos com barra (*/15, 1-30/5), podendo ser livremente combinados.
Padrões cron comuns
| Expressão cron | Significado |
|---|---|
| * * * * * | Executa a cada minuto. |
| */5 * * * * | Executa a cada 5 minutos. |
| 0 * * * * | Executa uma vez por hora, no minuto 0. |
| 0 0 * * * | Executa todos os dias à meia-noite (00:00). |
| 0 9 * * 1-5 | Executa às 9h nos dias úteis (segunda a sexta). |
| 0 0 1 * * | Executa à meia-noite no dia 1 de cada mês. |
| 0 0 1 1 * | Executa à meia-noite em 1º de janeiro de cada ano. |
| */15 9-17 * * 1-5 | Executa a cada 15 minutos entre 9h e 17h nos dias úteis. |
O que é uma expressão cron
Uma expressão cron declara numa só linha quando deve ser executada uma tarefa repetida. Cinco campos — minuto, hora, dia do mês, mês e dia da semana — dispõem-se a partir da esquerda separados por espaços, e cada um pode combinar * para todos os valores, uma lista separada por vírgulas, um intervalo com hífen e um passo com barra. Assim, */15 9-17 * * 1-5 significa «a cada quinze minutos das nove às cinco, de segunda a sexta».
Esta ferramenta analisa o que você escrever e, **depois de enunciar o agendamento em palavras, calcula as cinco próximas vezes em que será executado** a contar de agora. O detalhamento por campos aparece ao lado, de modo que se vê qual parte está agindo. O dia da semana vai de 0 para domingo a 6 para sábado como norma, mas também se admite a forma 7 para domingo que algumas implementações usam, tratada internamente como 0. A busca por execuções futuras alcança cerca de quatro anos; se nada coincidir dentro desse prazo, isso é dito com clareza.
Como usar o analisador de cron
- Escreva a expressão Dê os cinco campos — minuto, hora, dia, mês e dia da semana — separados por espaços. Um número de campos errado, ou um valor fora de faixa, provoca um aviso.
- Clique em «analisar» O sentido do agendamento aparece em palavras. Confira aqui primeiro que não leu mal a sua própria expressão.
- Reveja o detalhamento por campos Enumera-se o que representa cada um de minuto, hora, dia, mês e dia da semana. Denuncia qualquer campo com um valor que você não pretendia.
- Leia as próximas execuções Os cinco momentos seguintes são dados como datas e horas. Um descompasso com o pretendido — fixar o dia 31 em meses que não o têm, por exemplo — aparece como datas concretas.
- Tome emprestado dos padrões habituais Uma tabela reúne os mais comuns: a cada minuto, a cada cinco minutos, na hora cheia, às nove em dias úteis. Partir do mais próximo e modificá-lo é o caminho rápido.
Dicas para aproveitar melhor
- Os campos podem combinar livremente listas com vírgula, intervalos com hífen e passos com barra, como em "*/15 9-17 * * 1-5".
- O dia da semana costuma ser 0-6 (domingo a sábado), mas esta ferramenta também aceita o 7 como alias comum de domingo em algumas implementações de cron.
- Se tanto o dia do mês quanto o dia da semana estiverem restritos (diferentes de "*"), o cron padrão os trata como uma condição OR: a tarefa executa se qualquer um dos dois for satisfeito.
- O gatilho "schedule" do GitHub Actions usa a mesma sintaxe cron de 5 campos desta ferramenta, então também serve para conferir exatamente quando um workflow será executado.
- O horário real de execução depende do fuso horário configurado no servidor, por isso vale a pena conferir também a hora atual do servidor depois de editar um crontab.
Onde o analisador de cron ajuda
Confirmar o sentido antes de levá-lo ao crontab
Analisá-lo antes de registrá-lo num servidor evita o percalço de uma tarefa correr muito mais vezes do que se pretendia, ou não correr nunca.
Conferir um agendamento do GitHub Actions
A expressão sob schedule de um fluxo de trabalho usa a mesma notação de cinco campos. A lista de próximas execuções mostra se o intervalo é o pretendido.
Decifrar a expressão de outra pessoa
Quando uma configuração herdada contém algo como 0 */6 * * *, passá-la a palavras diz-lhe na hora a que horas ela dispara.
Investigar uma execução que se desviou
Quando uma tarefa não correu na hora em que devia, a lista de próximas execuções separa «a causa é a própria expressão» de «a causa é outra».
Quando quiser contar os dias entre execuções
Para contar quanto falta para a próxima, use o cronômetro de contagem regressiva; para contar em dias úteis, o cálculo de dias úteis.
Termos sobre cron
- cron
- O mecanismo dos sistemas do tipo Unix para executar tarefas repetidamente em horas fixadas. A tabela que emparelha cada tarefa com o seu horário chama-se crontab.
- Campo
- Cada elemento de uma expressão cron, separado por espaços. Da esquerda para a direita são minuto (0–59), hora (0–23), dia do mês (1–31), mês (1–12) e dia da semana (0–6).
- Asterisco
- Representa todos os valores que o campo pode tomar. Posto no minuto significa a cada minuto; no mês, a cada mês.
- Passo
- Escreve-se como
*/15e afins para indicar um intervalo. Toma valores ao longo da faixa com uma passada fixa: a cada quinze minutos, por exemplo. - Faixa
- Escreve-se como
1-5para tomar juntos vários valores consecutivos. No campo do dia da semana isso é de segunda a sexta; no da hora, da uma às cinco. - Numeração do dia da semana
- 0 é domingo e 6 é sábado. Algumas implementações admitem ainda 7 para domingo, e esta ferramenta trata o 7 igual ao 0.
- Fuso horário
- O cron é lido de ordinário na hora do ambiente onde corre. Se o relógio de um servidor não estiver como você supõe, a mesma expressão disparará a outra hora.
Perguntas frequentes
Curiosidade — Meio século de cron
Diz-se que o nome "cron" vem de Chronos, a palavra grega para tempo, e ele é o agendador de tarefas clássico desde os primórdios do UNIX, na década de 1970. Sua sintaxe compacta de cinco campos consegue expressar desde "a cada minuto" até "uma data e hora específicas uma vez por ano", e continua amplamente usada quase meio século depois.
Hoje, essa mesma sintaxe cron de 5 campos é usada não só nos crontabs de servidores Linux, mas também em diversas ferramentas de CI/CD e plataformas de contêineres, como GitHub Actions, GitLab CI e os CronJobs do Kubernetes. É um exemplo marcante de uma sintaxe criada na era UNIX que continua prosperando, sem mudanças, em ambientes cloud-native.
Um dos pontos mais confusos da sintaxe cron é o comportamento quando dia do mês e dia da semana são definidos juntos. É tentador presumir uma condição AND (que ambos sejam satisfeitos), mas a especificação real é uma condição OR (que qualquer um dos dois seja satisfeito), o que costuma causar execuções mais frequentes do que o esperado.