Construtor de Expressões Cron
Monte uma expressão cron apenas escolhendo minuto, hora, dia, mês e dia da semana em menus suspensos e campos numéricos. Veja instantaneamente a string cron gerada, uma descrição em linguagem simples e as próximas 5 execuções — útil para escrever um crontab ou o "schedule" do GitHub Actions.
Referência rápida de agendamentos comuns
Uma lista de expressões cron para agendamentos típicos. Clique em uma linha para aplicá-la como preset no construtor acima.
| Preset | Expressão cron | Significado |
|---|---|---|
| Todos os dias à meia-noite | 0 0 * * * | Executa todos os dias à meia-noite (00:00). |
| Dias úteis às 9h | 0 9 * * 1-5 | Executa às 9h nos dias úteis (segunda a sexta). |
| A cada hora, no minuto 0 | 0 * * * * | Executa uma vez por hora, no minuto 0. |
| Toda segunda-feira | 0 0 * * 1 | Executa toda segunda-feira à meia-noite (00:00). |
O que é uma expressão cron
Uma expressão cron são os cinco campos numéricos que indicam ao agendador de tarefas de um sistema UNIX quando executar algo. Da esquerda para a direita são minuto, hora, dia do mês, mês e dia da semana, separados por espaços, como em `30 3 * * 1`, que significa «todas as segundas-feiras às 3:30 da madrugada». A notação é muito compacta, e é precisamente aí que reside a sua fragilidade: um campo mal escrito continua normalmente a ser válido do ponto de vista sintático, pelo que a tarefa corre em silêncio à hora errada e ninguém dá por isso senão muito mais tarde.
Esta ferramenta permite configurar cada um dos cinco campos escolhendo entre cinco modos — todos os valores, um valor concreto, uma lista, um intervalo de valores ou um passo — e mostra ao mesmo tempo a expressão resultante e a sua leitura em linguagem corrente. Como pode percorrer no mesmo ecrã o caminho dos dados para a expressão e o da expressão para a frase, consegue verificar que aquilo que escreveu corresponde ao que pretendia antes de chegar a um servidor. Todo o processamento acontece no seu navegador: nada do que escrever é enviado para lado nenhum.
Como construir uma expressão cron
- Parta de uma predefinição Escolha a mais próxima entre as quatro disponíveis — meia-noite todos os dias, 9 horas nos dias úteis, de hora a hora à hora certa ou todas as segundas-feiras — e os campos ficam preenchidos. É mais rápido do que começar do zero e deixa menos espaço a enganos.
- Escolha um modo para cada campo Para minuto, hora, dia, mês e dia da semana selecione todos os valores (*), um valor concreto, uma lista, um intervalo de valores ou um passo (*/n). Deixe em «todos os valores» os campos que não lhe interessam.
- Introduza os valores A lista aceita números separados por vírgulas, o intervalo pede um início e um fim, e o passo pede de quanto em quanto executar. Os minutos vão de 0 a 59, as horas de 0 a 23, os dias de 1 a 31, os meses de 1 a 12 e os dias da semana de 0 a 6, sendo 0 o domingo.
- Confronte a expressão com a descrição Leia em paralelo a expressão gerada e a frase que aparece por baixo. Se a frase não corresponder à sua intenção, corrija o campo que está errado.
- Cole-a no seu crontab Quando a leitura estiver correta, copie a expressão, abra a sua tabela com `crontab -e`, coloque-a no início de uma linha e escreva a seguir o comando que quer executar.
Dicas para aproveitar melhor
- Ao colocar o campo de dia da semana no modo "Intervalo" de 1 a 5, você obtém segunda a sexta-feira em uma única etapa.
- O modo "Lista" permite inserir vários valores separados por vírgula; por exemplo, digitar "0,15,30,45" no campo de minutos equivale a executar a cada 15 minutos.
- Se tanto o dia do mês quanto o dia da semana estiverem em um valor diferente de "Todos (*)", o cron padrão os trata como uma condição OR: a tarefa executa se qualquer um dos dois for satisfeito.
- A expressão cron gerada pode ser copiada para a área de transferência com o botão "Copiar", pronta para colar diretamente em um crontab ou em um arquivo YAML do GitHub Actions.
- Clique em um botão de preset, ou em uma linha da tabela de referência rápida abaixo, para aplicar um agendamento comum ao construtor com um clique.
Onde esta ferramenta ajuda
Agendar cópias de segurança e processamento em lote
As exportações de base de dados e a consolidação de registos costumam ficar nas horas de menor atividade. Consegue montar algo como «todos os dias às 3:05» sem ter de recordar primeiro a sintaxe.
Executar apenas em dias úteis
Definir o campo do dia da semana no intervalo 1–5 limita a tarefa aos dias úteis. O cron não sabe nada sobre feriados, por isso, se precisar de os excluir, coloque a verificação dentro do seu próprio script.
Decifrar uma expressão escrita por outra pessoa
Quando herda um servidor cujo crontab contém algo como `*/15 2-5 * * *`, reproduzir aqui a mesma configuração e ler a descrição evita interpretações erradas.
Configurar horários em CI e contentores
As entradas `schedule` do GitHub Actions e os CronJob do Kubernetes usam os mesmos cinco campos. Acontece que normalmente correm em UTC, pelo que convém deslocar o campo da hora conforme o seu fuso.
Termos do cron
- cron
- O programa residente dos sistemas do tipo UNIX que executa comandos às horas indicadas. A configuração vive numa tabela própria de cada utilizador chamada crontab.
- crontab
- Designa tanto a própria tabela de horários como o comando usado para a editar (`crontab -e`). Cada linha junta uma expressão cron ao comando a executar.
- Asterisco (*)
- Significa «todos os valores» desse campo. Um asterisco no campo dos minutos quer dizer a cada minuto; no campo do mês, todos os meses.
- Passo (*/n)
- Executa a cada n valores. Um `*/15` no campo dos minutos corresponde aos minutos 0, 15, 30 e 45. A contagem começa sempre pelo valor mais baixo do campo: não significa «n minutos depois da última execução».
- Listas e intervalos
- A lista enumera valores separados por vírgulas (`1,15`); o intervalo liga-os com um hífen (`9-17`). Ambos podem ser combinados no mesmo campo, como em `1-5,10`.
- Dia do mês em conjunto com dia da semana
- Na maioria das implementações de cron, se tanto o campo do dia do mês como o do dia da semana forem diferentes de *, a tarefa corre quando **qualquer um dos dois** coincidir, e não ambos ao mesmo tempo. Por isso `0 0 1 * 1` significa «o dia 1 de cada mês e, além disso, todas as segundas-feiras», uma combinação que surpreende com frequência.
Perguntas frequentes
Curiosidade — Por que escrever uma expressão cron é mais difícil do que lê-la
Uma expressão cron parece simples depois que você conhece seus 5 campos, mas escrever uma manualmente exige lembrar detalhes como se "*/15" ou "1-30/5" é a forma correta, ou se os dias da semana começam em 0 ou em 1 — detalhes surpreendentemente fáceis de errar. Ler uma expressão cron já existente (a tarefa do Analisador de Expressões Cron deste site) é comparativamente mecânico, bastando percorrer os campos um a um.
Esta ferramenta foi construída em torno dessa assimetria: ela apoia o ato de montar uma expressão cron a partir de seleções na interface, em vez de digitar a sintaxe bruta. Você expressa sua intenção diretamente — "executar às 9h nos dias úteis" — por meio de menus suspensos e campos numéricos, e a ferramenta monta uma expressão cron que a satisfaz, eliminando por completo a necessidade de decorar a sintaxe.
Como verificação final, a ferramenta mostra uma prévia das próximas 5 execuções agendadas para a expressão que você acabou de montar. Isso importa especialmente por causa de uma regra sutil que costuma confundir: quando o dia do mês e o dia da semana estão ambos restritos, o cron os trata como uma condição OR, e não AND. Ver as datas candidatas reais ajuda a detectar uma tarefa que, de outra forma, executaria com mais frequência do que o pretendido.