tigtools

Explicador de expressões cron

Insira um agendamento cron de 5 campos para entender o que ele significa e quando será executado. Todos os cálculos são feitos no seu navegador.

Executado no seu navegador Sem cadastro

Cinco campos: minuto, hora, dia do mês, mês e dia da semana. Macros como @daily também são aceitas.

Programações comuns

Significado

A cada 15 minutos, entre 09:00 e 17:59, em de segunda-feira a sexta-feira.

Campos

Minuto
*/15
Hora
9-17
Dia do mês
*
Mês
*
Dia da semana
1-5
Fuso horário

Próximas 10 execuções

    Como usar

    1. Digite ou cole uma expressão cron, ou escolha um dos agendamentos comuns.
    2. Confira o significado em linguagem simples. Os campos inválidos são identificados com o motivo.
    3. 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.
    4. 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.