Nouplo

Gerador de expressão cron

Um agendamento em palavras de um lado, uma expressão do outro.

Os exemplos substituem temporariamente os dados e as configurações. Você pode restaurar seu trabalho anterior.

0 caracteres
Resultado
Cole ou digite acima para ver o resultado aqui.

Seus arquivos ficam no seu dispositivo

Esta ferramenta roda inteiramente no seu navegador. O que você cola é processado no seu dispositivo e nunca é enviado a um servidor, então é seguro usar com tokens, chaves e textos não publicados.

Exemplo

Exemplo: exportar as notas fiscais todo dia útil às 18:30, escrito em inglês

Um escritório de contabilidade quer que o servidor exporte os XML das notas fiscais do dia em cada dia útil, às 18:30, no fim do expediente. Com o menu em “Descrever abaixo em vez disso”, escreve-se no campo, em inglês: every weekday at 18:30.

  1. O gerador escreve 30 18 * * 1-5: minuto 30, hora 18, qualquer dia do mês, qualquer mês, e os dias da semana de 1 (segunda) a 5 (sexta).
  2. Embaixo ele relê a expressão em inglês, campo a campo, e lista as cinco próximas execuções no fuso do navegador: todas às 18:30, nenhuma no fim de semana.
  3. Em português, “dias úteis às 18:30” é recusado, com a lista das palavras que ele não conhece: dias, úteis, às.
  4. Cole no crontab antes do comando: 30 18 * * 1-5 /usr/local/bin/exporta-notas.sh
O que você escreve O que ele devolve
every weekday at 18:30 30 18 * * 1-5
18:30 30 18 * * *, também sábado e domingo
on the 5th at 7am 0 7 5 * *
on the 1st and 15th at 8am 0 8 1,15 * *
every weekday at 9:00 and 13:30 duas linhas, 0 9 * * 1-5 e 30 13 * * 1-5: minutos diferentes não cabem numa só
every 90 minutes duas linhas, 0 */3 * * * e 30 1-23/3 * * *, porque */90 rodaria de hora em hora
on the last day of the month at 23:00 nenhuma: o cron não expressa isso, e a página explica a alternativa
dias úteis às 18:30 nenhuma: avisa das palavras desconhecidas (dias, úteis, às)

30 18 * * 1-5: cinco exportações por semana, às 18:30 pelo relógio do servidor. Num servidor em UTC, use 30 21 * * 1-5: Brasília fica 3 horas atrás de UTC o ano todo, sem horário de verão desde 2019. E o cron não conhece feriados: na sexta, 20 de novembro de 2026, Dia da Consciência Negra, ele roda do mesmo jeito.

Como funciona

  1. Descreva o agendamento em inglês: “every 15 minutes”, “at 5pm on weekdays”, “on the 1st at midnight”. O campo não lê frases em português.
  2. Ou escolha uma das formas comuns da lista.
  3. Confira as cinco próximas execuções. Esse é o teste de verdade do que a expressão diz.
  4. Copie a expressão para o seu crontab.

Perguntas frequentes

Domingo é 0 ou 7?
Os dois, na maioria das implementações: 0 e 7 são aceitos. Aqui se escreve 0, que todas entendem. É exatamente o tipo de detalhe que traz alguém a uma página como esta.
E se ele não entender a minha descrição?
Ele não chuta: diz que não conseguiu ler, lista as palavras que não conhece e mostra as formas que entende. Só lê inglês: “dias úteis às 9:30” é recusado (palavras desconhecidas: dias, úteis, às), enquanto “every weekday at 9:30” dá 30 9 * * 1-5. Os avisos e a releitura da expressão saem em português.
Por que mostrar as cinco próximas execuções?
Porque reler uma expressão não é conferi-la. As datas são calculadas pelo mesmo analisador que a página de explicação usa: você vê o que uma máquina faria, não o que esta página acha que escreveu.
Ele aceita a sintaxe estendida?
Nem o campo de segundos do Quartz nem os atalhos no estilo @yearly. Esses variam entre implementações, e a forma de cinco campos é o que o crontab, o Kubernetes e a maioria dos agendadores realmente leem.
Como acerto o horário se o servidor está em UTC?
O cron lê a hora no fuso da máquina que roda a tarefa. Brasília é UTC−3 o ano todo, já que o horário de verão acabou em 2019: 18:30 em Brasília é 21:30 em UTC, e 22:00 em Brasília já é 01:00 do dia seguinte em UTC, o que muda também o dia da semana. As próximas execuções desta página aparecem no fuso do seu navegador.
Dá para rodar a cada 90 minutos?
Numa linha só, não: um passo no campo dos minutos recomeça a cada hora, então */90 rodaria uma vez por hora. Escrevendo every 90 minutes, a página devolve duas linhas que, juntas, rodam a cada 90 minutos: 0 */3 * * * e 30 1-23/3 * * *.
Alguma coisa vai para um servidor?
Não. Roda no seu navegador, então o que você digita fica no seu computador.

Para um uso específico

Ferramentas relacionadas