MiServe DevTools

Os seus autocolantes

Fixe aqui as ferramentas. Ficam guardadas neste navegador.

Intérprete de expressões cron

Leia uma expressão cron campo a campo e numa frase simples, e veja quando vai ser executada a seguir.

Em palavras simples

O que significa cada campo da expressão
CampoValorSignificadoValores permitidos
Minuto 0–59
Hora 0–23
Dia do mês 1–31
Mês 1–12, JAN–DEC
Dia da semana 0–7, SUN–SAT

Próximas execuções

ExecuçãoA partir de agora

Funciona no seu navegador. Nada do que cola é enviado.

Sobre esta ferramenta

Os cinco campos

Uma expressão cron tem cinco campos separados por espaços: minuto (0–59), hora (0–23), dia do mês (1–31), mês (1–12) e dia da semana (0–7, em que tanto 0 como 7 significam domingo). O cron verifica o relógio uma vez por minuto e executa a tarefa quando o minuto, a hora, o mês e o dia coincidem. Os dois campos de dia decidem em conjunto se o dia coincide, segundo a regra descrita abaixo.

Em cada campo, * corresponde a todos os valores, uma lista como 1,15 corresponde a cada um dos seus valores, um intervalo como 1-5 corresponde a tudo o que vai do primeiro ao último valor, e um passo como */15 ou 8-18/2 toma um em cada N valores do intervalo. Os meses e os dias da semana podem ser escritos com os nomes ingleses de três letras, de JAN a DEC e de SUN a SAT.

As macros são abreviaturas: @hourly é 0 * * * *, @daily e @midnight são 0 0 * * *, @weekly é 0 0 * * 0, @monthly é 0 0 1 * *, e @yearly e @annually são 0 0 1 1 *.

Quando os dois campos de dia estão definidos

O dia do mês e o dia da semana não se restringem um ao outro. Quando ambos estão restringidos, a tarefa é executada num dia que corresponda a qualquer um deles. Assim, 0 0 13 * 5 é executada à meia-noite no dia 13 de cada mês e também em todas as sextas-feiras, e não apenas nas sextas-feiras 13.

O Vixie cron e o cronie decidem se um campo de dia está restringido olhando para o seu primeiro carácter. Um campo que começa por *, incluindo um passo como */2, conta como não restringido, e nesse caso os dois campos têm de corresponder. 0 0 */2 * 1 é executada nas segundas-feiras que calham num dia ímpar do mês. Esta ferramenta segue a mesma regra e indica qual dos dois casos se aplica.

Passos, fusos horários e o que não é lido

Um passo conta a partir do início do intervalo e recomeça quando o intervalo termina. */15 no campo dos minutos dá 0, 15, 30 e 45, o que é de facto a cada 15 minutos. */7 dá 0, 7, 14 e assim por diante até 56, e depois 0 outra vez quatro minutos mais tarde. A tabela lista os valores em que um passo se expande, para que possa ver isto.

O cron compara a expressão com o relógio da máquina onde corre, e muitos servidores mantêm esse relógio em UTC. Escolha Hora local ou UTC por cima da lista das próximas execuções para corresponder à máquina, e leia a outra coluna para ver os mesmos momentos no outro fuso. Quando o relógio local muda por causa da hora de verão, as implementações do cron diferem no que fazem com as tarefas marcadas para a hora saltada ou repetida. Esta ferramenta não lista nenhuma execução numa hora que é saltada, e só lista duas vezes uma hora repetida quando o campo dos minutos ou o das horas começa por *.

Só é lida a sintaxe padrão de cinco campos. Um campo de segundos, um campo de ano e os caracteres ?, L, W e # pertencem a outros agendadores, como o Quartz, e são assinalados como erros. O mesmo acontece com um passo depois de um valor único, como 5/15: o manual do crontab só define um passo depois de * ou de um intervalo, por isso escreva 5-59/15.

Perguntas

O que significa */5 numa expressão cron?

Significa um em cada cinco valores, a contar do valor mais baixo que o campo permite. No campo dos minutos, são os minutos 0, 5, 10 e assim por diante até 55, por isso a tarefa é executada a cada cinco minutos. No campo das horas, são as horas 0, 5, 10, 15 e 20.

0 0 13 * 5 só é executada nas sextas-feiras 13?

Não. Quando o dia do mês e o dia da semana estão ambos restringidos, o cron executa a tarefa quando qualquer um deles corresponde. Essa expressão é executada no dia 13 de cada mês e em todas as sextas-feiras.

O domingo é 0 ou 7?

Ambos. O campo do dia da semana aceita valores de 0 a 7, e tanto 0 como 7 significam domingo. Segunda-feira é 1 e sábado é 6. Também pode escrever SUN, MON e assim por diante.

Que fuso horário usa o cron?

O cron usa o relógio e o fuso horário do sistema onde corre, a menos que o seu agendador permita definir um fuso para a tarefa. Muitos servidores e agendadores alojados funcionam em UTC, por isso verifique antes de assumir a hora local.

Mais ferramentas de Tempo