Resumo
Este gerador de expressão cron cria e verifica agendamentos cron padrão de cinco campos no seu navegador. Escolha um modelo ou edite os campos de minuto, hora, dia do mês, mês e dia da semana. A ferramenta explica o agendamento em linguagem simples, mostra cada campo em detalhe e lista as próximas cinco execuções em UTC ou no seu fuso horário. Ela segue a regra padrão do cron para combinar dia do mês e dia da semana. Nada é enviado a um servidor e não é preciso cadastro.
Gerador de expressão cron: crie e visualize agendamentos em segundos
Escolha um modelo ou digite os cinco campos. Você recebe a leitura em linguagem simples, a análise campo a campo e as próximas cinco execuções, tudo calculado localmente.
O que a ferramenta faz com os seus cinco campos
Ela analisa cada campo separadamente
Cada campo aceita um valor único, uma lista (1,15), um intervalo (1-5), um passo (*/10) ou uma combinação. Nomes de mês e de dia da semana, como JAN ou MON-FRI, funcionam. Valores fora do limite e intervalos invertidos são sinalizados no campo exato que está errado.
Ela aplica a regra de correspondência real do cron
Um horário corresponde quando minuto, hora e mês estão nas suas listas e o teste do dia é aprovado. Se dia do mês e dia da semana estiverem ambos restritos, o cron aceita um ou outro. Se um deles começar com asterisco, ambos precisam bater.
Ela percorre o calendário para listar as próximas execuções
A partir do minuto atual, o script avança dia a dia, mantém os dias que passam no teste e depois lista as horas e os minutos correspondentes em ordem. Ele procura até oito anos à frente, o suficiente para encontrar um agendamento de 29 de fevereiro.
Os cinco campos, na ordem em que o cron os lê
Uma linha de cron tem cinco campos separados por espaços, seguidos do comando. A ordem nunca muda: minuto, hora, dia do mês, mês e dia da semana. A maioria dos erros vem de trocar os dois primeiros, então um agendamento para as 14h acaba rodando no minuto 14 de cada hora. Leia da esquerda para a direita e diga os campos em voz alta antes de confirmar.
- Minuto: 0-59
- Hora: 0-23, no formato de 24 horas
- Dia do mês: 1-31
- Mês: 1-12 ou JAN-DEC
- Dia da semana: 0-7 ou SUN-SAT, sendo 0 e 7 ambos domingo
- Símbolos: * para todos os valores, , para lista, - para intervalo, / para passo
Armadilhas do cron que custam um fim de semana
O ambiente é quase vazio
O cron inicia os jobs com um PATH mínimo e sem perfil de shell. Um script que funciona no seu terminal pode falhar em silêncio no cron. Use caminhos absolutos para o comando e para qualquer arquivo que ele leia, e redirecione a saída para um arquivo de log para ver os erros.
Um sinal de porcentagem encerra o seu comando
Em uma linha do crontab, um % sem escape vira quebra de linha, e tudo o que vem depois é enviado ao comando como entrada. Formatos de data como date +%F precisam de cada % escapado com barra invertida. Coloque o comando em um script e o problema desaparece.
Rodar a cada minuto raramente é o que você quer
Um job que roda a cada minuto e leva 90 segundos vai se sobrepor a ele mesmo. Proteja jobs longos com um lock ou mova a tarefa para uma fila. Se você só precisa de algo a cada alguns minutos, um passo como */5 é mais leve e poupa o que o job chama.
O fuso horário não é o seu
Um crontab usa o fuso horário do servidor. Agendadores hospedados geralmente usam UTC. Um job marcado para as 09:00 pode disparar às 17:00 em Taipei ou às 04:00 em Bangkok, dependendo de onde a máquina está. Informe o fuso horário em um comentário ao lado da linha.
Dia da semana e dia do mês se combinam com OU
Restringir os dois campos não estreita o agendamento, ele o amplia. Se você quer a primeira segunda-feira do mês, nenhuma expressão de cinco campos consegue dizer isso diretamente. Rode o job toda segunda-feira e deixe o script verificar se a data é 7 ou menor.
Teste o agendamento antes do job
Confira as próximas cinco execuções aqui primeiro e depois rode o comando manualmente com o mesmo ambiente. Duas verificações pequenas evitam depurar um backup noturno que nunca rodou. Comece com um comando inofensivo, como gravar a data em um arquivo.
Perguntas sobre expressões cron
Este gerador de expressão cron é grátis e envia o meu agendamento para algum lugar?
Quantos campos tem uma expressão cron?
Por que o meu job roda em dias que eu não esperava quando defini dia do mês e dia da semana?
Qual fuso horário as próximas execuções usam?
A mesma expressão funciona no GitHub Actions, no Kubernetes e no crontab?
O que significa um passo como */15 ou 10/20?
Posso usar nomes como MON-FRI ou JAN?
O que acontece nas mudanças de horário de verão?
Procurando a próxima coisa para construir?
Um job cron é um bom primeiro backend para um projeto paralelo. O gerador grátis da nossa página inicial entrega uma especificação completa do projeto, com stack e escopo, em um clique.