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.
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.
- 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).
- 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.
- Em português, “dias úteis às 18:30” é recusado, com a lista das palavras que ele não conhece: dias, úteis, às.
- 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
- 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.
- Ou escolha uma das formas comuns da lista.
- Confira as cinco próximas execuções. Esse é o teste de verdade do que a expressão diz.
- 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.