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.

Ferramenta cron grátis

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.

Gerador de expressão cron

Parta de um modelo ou edite qualquer um dos cinco campos. A expressão, o seu significado e as próximas cinco execuções são atualizados enquanto você digita.

0-59
0-23
1-31
1-12 ou JAN-DEC
0-7 ou SUN-SAT
0 9 * * *

Campo a campo

    Próximas 5 execuções

      Linha do crontab

      Como funciona

      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.

      Sintaxe

      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
      Rack de servidores com luzes de status verdes e ciano em uma sala escura
      Aqui está o que quebra na prática

      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?
      É grátis, não exige cadastro e roda inteiramente no seu navegador. A expressão que você digita é analisada localmente por um pequeno script desta página. Nada é enviado. A única chamada de rede é um contador anônimo que registra que alguém usou a ferramenta.
      Quantos campos tem uma expressão cron?
      Cinco no cron Unix padrão: minuto, hora, dia do mês, mês e dia da semana, nessa ordem. Alguns agendadores acrescentam um sexto campo. O Quartz põe os segundos no início, e o AWS EventBridge acrescenta um campo de ano e usa um ponto de interrogação. Esta ferramenta trata apenas o formato de cinco campos, então cole o resultado em um desses sistemas e consulte a documentação para o campo extra.
      Por que o meu job roda em dias que eu não esperava quando defini dia do mês e dia da semana?
      Porque o cron padrão trata os dois campos com OU quando ambos são restritos. A expressão 0 0 13 * 5 dispara todo dia 13 e toda sexta-feira, não apenas na sexta-feira 13. Se um dos dois campos for um asterisco simples ou começar com um, a verificação passa a ser E. A lista de prévia acima aplica essa regra, então você pode ver as datas reais antes de implantar.
      Qual fuso horário as próximas execuções usam?
      Você escolhe. UTC é o padrão, porque a maioria dos agendadores em nuvem roda o cron em UTC. A segunda opção usa o fuso horário do seu navegador. O seu próprio servidor pode usar um terceiro, então verifique a configuração de fuso horário da máquina ou a documentação do agendador antes de confiar nos horários.
      A mesma expressão funciona no GitHub Actions, no Kubernetes e no crontab?
      Os cinco campos têm o mesmo significado nos três. O GitHub Actions avalia os agendamentos em UTC, e o menor intervalo permitido é de 5 minutos. Um CronJob do Kubernetes usa os mesmos cinco campos e permite definir um fuso horário nas versões mais novas. Um crontab clássico usa o fuso horário da máquina. Strings especiais como @daily são aceitas por muitas implementações de crontab, mas não por todos os agendadores, então prefira o formato de cinco campos em caso de dúvida.
      O que significa um passo como */15 ou 10/20?
      Um passo escolhe cada n-ésimo valor de um intervalo. No campo de minuto, */15 significa 0, 15, 30 e 45. Um valor inicial seguido de passo, como 10/20, vai desse valor até o fim do campo: minutos 10, 30 e 50. Um intervalo com passo, como 8-18/2 no campo de hora, significa 8, 10, 12, 14, 16 e 18.
      Posso usar nomes como MON-FRI ou JAN?
      Sim. Os campos de mês e de dia da semana aceitam nomes em inglês de três letras, em qualquer caixa. Números também funcionam: os meses vão de 1 a 12, e os dias da semana de 0 a 7, em que 0 e 7 significam domingo.
      O que acontece nas mudanças de horário de verão?
      Depende do agendador. Quando os relógios adiantam, um job marcado dentro da hora pulada pode ser pulado ou executado com atraso. Quando os relógios voltam, um job marcado dentro da hora repetida pode rodar duas vezes. Se um job precisa rodar exatamente uma vez por dia, agende-o em UTC ou em um horário distante da mudança.

      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.