Como usar
- Digite ou cole uma expressão cron, ou escolha um dos agendamentos comuns.
- Confira o significado em linguagem simples. Os campos inválidos são identificados com o motivo.
- Confira os próximos 10 horários de execução, exibidos no seu fuso horário local. Mude para UTC se o seu servidor usar UTC.
- Copie os horários de execução para compartilhá-los ou ajuste a expressão até obter o agendamento desejado.
Como funciona
Uma expressão cron padrão, como a usada pelo crontab no Linux (Vixie cron e cronie) e por muitos agendadores de CI e hospedagem, tem cinco campos separados por espaços: minuto (0–59), hora (0–23), dia do mês (1–31), mês (1–12 ou JAN–DEC) e dia da semana (0–7 ou SUN–SAT, em que 0 e 7 significam domingo). Cada campo aceita * para qualquer valor, um valor único, um intervalo como 1-5, uma lista como 1,15,30 e um passo como */15 (a cada 15 valores) ou 9-17/2 (a cada duas horas, das 9 às 17). Os nomes não diferenciam maiúsculas de minúsculas. Os atalhos @yearly (ou @annually), @monthly, @weekly, @daily (ou @midnight) e @hourly equivalem a 0 0 1 1 *, 0 0 1 * *, 0 0 * * 0, 0 0 * * * e 0 * * * *.
Os campos de dia do mês e dia da semana seguem uma regra que surpreende muita gente. Se um dos campos começar com *, o dia precisa corresponder aos dois campos. Se os dois campos tiverem valores específicos, o dia corresponde quando atende a qualquer um deles: 0 0 13 * 5 é executado no dia 13 de todos os meses e também em todas as sextas-feiras, não apenas na sexta-feira 13. Como o teste verifica se o campo começa com *, um passo como */2 também conta como irrestrito. Esse comportamento corresponde ao Vixie cron e ao cronie; alguns outros agendadores funcionam de outra maneira.
Os próximos horários de execução são calculados no fuso horário do seu navegador ou em UTC, usado pela maioria dos servidores e agendadores em nuvem. O cron usa o fuso horário da máquina em que é executado. Os daemons cron reais podem se comportar de maneiras diferentes nas mudanças para o horário de verão; esta ferramenta omite os horários locais inexistentes quando o relógio adianta e mostra apenas uma vez as horas repetidas. Sintaxes estendidas não são compatíveis: expressões Quartz de seis ou sete campos com segundos ou anos e os caracteres especiais ?, L, W e #.
Exemplos
Verificação de integridade no horário comercial
*/15 9-17 * * 1-5 significa a cada 15 minutos, entre 09:00 e 17:59, de segunda a sexta-feira. A última execução do dia ocorre às 17:45.
Backup noturno
30 2 * * * é executado todos os dias às 02:30. Se o servidor usa UTC e você está em Nova York, a lista de próximas execuções no modo UTC mostra os horários que o servidor realmente usará.
A armadilha dos campos de dia
0 9 1 * 1 parece significar “às 9:00 no primeiro dia do mês, se for uma segunda-feira”, mas é executado às 09:00 no dia 1 de todos os meses e também todas as segundas-feiras. Para executar apenas na primeira segunda-feira, agende 0 9 1-7 * * e verifique o dia da semana no script.
Perguntas frequentes
O que significa */5 no cron?
Significa a cada quinto valor do campo, começando pelo menor valor. No campo de minutos, */5 é executado nos minutos 0, 5, 10 … 55. No campo de horas, */5 é executado às 0, 5, 10, 15 e 20 horas. Portanto, o intervalo das 20:00 à meia-noite é de quatro horas, não de cinco.
Por que meu job é executado em mais dias do que eu esperava?
Quando os campos de dia do mês e dia da semana têm valores específicos, o cron é executado nos dias que correspondem a qualquer um deles. Por exemplo, 0 0 15 * 1 é executado no dia 15 e em todas as segundas-feiras. Defina um dos dois campos como * para considerar apenas o outro.
Qual fuso horário o cron usa?
O fuso horário do sistema no servidor que executa o daemon cron, a menos que o crontab defina CRON_TZ ou TZ (compatível com cronie). Agendadores em nuvem geralmente usam UTC por padrão. Use a opção UTC para ver os horários que um servidor em UTC usaria.
Posso usar segundos ou um campo de ano?
Não no cron padrão, que tem resolução de um minuto e cinco campos. Os formatos de seis e sete campos com segundos e anos são usados pelo Quartz, Spring e bibliotecas semelhantes, e não são compatíveis com esta ferramenta.
Domingo é 0 ou 7?
Ambos. No campo de dia da semana, 0 e 7 significam domingo, 1 é segunda-feira e 6 é sábado. Você também pode usar os nomes de três letras, de SUN a SAT.
Privacidade
A expressão é analisada e os horários de execução são calculados no seu navegador. Nada do que você inserir será enviado, armazenado ou incluído nas métricas de uso.