Analisador e criador de expressões cron
Leia expressões cron do Unix, Spring, Quartz e AWS, veja as próximas execuções em qualquer fuso horário ou monte uma expressão campo a campo.
Agendamento
Detalhamento dos campos
| Campo | Expressão | Valores |
|---|
Próximas execuções
Criador visual
Escolha como cada campo se repete. “Valores específicos” aceita uma lista como 1,15 ou MON,WED; “Intervalo”, um de-até como 9-17; “A cada N”, o passo.
Caracteres especiais
| * | Todos os valores do campo. |
| , | Lista de valores, ex.: 1,15,30. |
| - | Intervalo, ex.: 9-17 ou MON-FRI. |
| / | Passo, ex.: */15 = a cada 15; 5/15 = a partir de 5, a cada 15 (não no cron do Unix). |
| ? | Sem valor específico. Quartz e AWS exigem no dia do mês ou no dia da semana. |
| L | Último: L no dia do mês = último dia; L-3 = três dias antes; 5L no dia da semana = última quinta-feira (numeração do Quartz). |
| W | Dia útil mais próximo: 15W = o dia útil mais próximo do dia 15; LW = último dia útil do mês. |
| # | N-ésimo dia da semana do mês: 6#3 = terceira sexta-feira no Quartz/AWS (1 = domingo); 5#3 no Spring (0 = domingo). |
| @daily … | Macros: @yearly, @monthly, @weekly, @daily, @hourly; @reboot executa uma vez na inicialização. |
Como usar
- Digite ou cole um agendamento em "Expressão cron", ou clique em um dos exemplos, o que também define "Formato" como "Detecção automática". O resumo e as execuções são atualizados enquanto você digita.
- Deixe "Formato" em "Detecção automática" ou selecione o sistema para o qual a expressão foi escrita. A detecção automática lê 5 campos como Unix e 7 como Quartz. Com 6 campos, escolhe AWS ou Quartz pela posição do "?", escolhe AWS quando o último campo contém um ano de 1970 a 2199 e, nos demais casos, assume Spring. Macros como @weekly são lidas como Unix. Quando a expressão é válida, a linha de status indica o formato usado.
- Leia "Agendamento" e "Detalhamento dos campos" para ver o que cada campo abrange e confira as datas em "Próximas execuções". "Fuso horário" começa com o fuso do seu navegador; selecione outro se necessário e escolha 5, 10 ou 20 em "Execuções a mostrar". Em fusos diferentes de UTC, cada execução também mostra o horário em UTC.
- Para montar uma expressão, abra "Criador visual", selecione um formato e escolha como cada campo se repete, digitando um valor quando o campo pedir. "Usar esta expressão" copia a "Expressão gerada" para "Expressão cron", define "Formato" como o formato do criador e analisa a expressão, para que você possa conferir as execuções.
Perguntas frequentes
A expressão que eu digito é enviada para algum lugar?
Não. A expressão é analisada e as execuções são calculadas no seu navegador com JavaScript; ela não é enviada à LeedyBox.
Por que 0 0 13 * 5 é executado em todas as sextas-feiras, e não só na sexta-feira 13?
No cron do Unix, quando o dia do mês e o dia da semana estão ambos restritos (nenhum dos dois começa com *), um dia corresponde se qualquer um dos dois campos corresponder, então essa expressão é executada no dia 13 de cada mês e em todas as sextas-feiras. A ferramenta aplica essa regra às expressões Unix, e "Agendamento" então mostra "basta um dos dois". Nas expressões Spring, ela exige que os dois campos correspondam, e Quartz e AWS evitam a questão exigindo "?" em um dos dois campos. No cron do Unix, uma solução comum é agendar todas as sextas-feiras e verificar a data dentro do job.
O domingo é 0, 1 ou 7?
Depende do formato. Em expressões Unix e Spring, 0 e 7 significam domingo e 1 é segunda-feira; no Quartz e na AWS, 1 é domingo e 7 é sábado, então 1-5 significa de domingo a quinta-feira nesses formatos. Nomes de dias como MON-FRI evitam essa diferença no Spring, no Quartz e na AWS.
Por que minha linha do crontab ou minha expressão cron( ) da AWS é rejeitada?
Digite apenas os campos do agendamento. O comando no fim de uma linha do crontab e o nome de usuário no /etc/crontab são contados como campos extras, então a ferramenta indica um campo inválido ou o número errado de campos. Para a AWS, cole os seis campos de dentro de cron( ), sem o invólucro.
Como reescrevo uma expressão Unix para Spring, Quartz ou AWS?
O Spring acrescenta um campo de segundos no início, então 0 9 * * 1-5 vira 0 0 9 * * 1-5. O Quartz também exige "?" em um dos campos de dia e numera o domingo como 1, então o mesmo agendamento fica 0 0 9 ? * MON-FRI. A AWS não tem campo de segundos, exige "?" em um dos campos de dia, como o Quartz, e acrescenta um ano no fim: 0 9 ? * MON-FRI *. Se a expressão Unix restringir os dois campos de dia, ela depende da regra descrita acima, em que basta um dos dois campos corresponder; como esses formatos não usam essa regra, normalmente você precisa de dois agendamentos. Confira o resultado com o formato de destino selecionado e compare as próximas execuções.
Por que a ferramenta diz que nenhuma execução foi encontrada?
A expressão é válida, mas nenhum horário correspondente foi encontrado nos cerca de 8 anos à frente que a ferramenta pesquisa. Causas típicas são datas que não existem, como 0 0 30 2 * (30 de fevereiro) ou o dia 31 combinado apenas com meses de 30 dias, e um campo de ano que está no passado. Um ano mais de 8 anos à frente gera a mesma mensagem, embora esse agendamento ainda possa ser executado mais tarde. Alguns agendadores, incluindo o cron clássico do Unix, aceitam uma data inexistente sem aviso, e o job não é executado.
Qual fuso horário é usado, e o que acontece com o horário de verão?
As execuções são calculadas para o fuso selecionado em "Fuso horário". Escolha o que o seu agendador usa: o crontab geralmente segue o fuso horário do servidor, as regras agendadas do AWS EventBridge usam UTC, e o EventBridge Scheduler permite definir um fuso horário. O menu oferece o fuso do seu navegador, o UTC e uma seleção de fusos comuns; se o fuso do seu agendador não estiver na lista, escolha um com a mesma diferença em relação ao UTC e as mesmas datas de horário de verão. Uma execução em um horário pulado quando os relógios são adiantados fica fora da lista, e um horário que ocorre duas vezes quando eles são atrasados aparece uma só vez. Os daemons cron tratam essas horas de formas diferentes; o cronie, por exemplo, pode executar um job de uma hora pulada logo após a mudança. Verifique o comportamento do seu agendador ou use UTC, que não tem horário de verão.