Gerador de Expressões Cron

Escreva e leia agendamentos do crontab. Digite uma expressão cron e veja em palavras quando ela roda, as próximas execuções e o que significa cada um dos cinco campos.

Minuto
Hora
Dia
Mês
Dia da semana

A cada minuto.

Próximas execuções


  •  
  •  
  •  
  •  
  •  

Os horários aparecem no fuso do seu computador (). O cron usa o fuso do servidor, que muitas vezes não é o mesmo.

Agendamentos comuns


Escolha um para carregar no campo acima.

* * * * *A cada minuto
*/5 * * * *A cada 5 minutos
*/15 * * * *A cada 15 minutos
*/30 * * * *A cada meia hora
0 * * * *A cada hora
0 */2 * * *A cada 2 horas
0 */6 * * *A cada 6 horas
0 */12 * * *Duas vezes por dia
0 0 * * *Todo dia à meia-noite
0 9 * * *Todo dia às 9 da manhã
0 9 * * 1-5De segunda a sexta às 9 da manhã
0 9 * * 6,0Sábado e domingo às 9
0 0 * * 1Toda segunda-feira à meia-noite
0 18 * * 5Toda sexta-feira às 6 da tarde
0 0 1 * *Primeiro dia do mês
0 0 1 1 *Primeiro dia do ano

O que significa cada campo


CampoValores aceitos
Minuto0 – 59
Hora0 – 23
Dia do mês1 – 31
Mês1 – 12, JAN – DEC
Dia da semana0 – 6, SUN – SAT (0 = 7)

Caracteres especiais


CaractereSignificado
*qualquer valor
,separa valores numa lista
-um intervalo de valores
/passos dentro de um intervalo

Atalhos


@yearly, @annually0 0 1 1 *
@monthly0 0 1 * *
@weekly0 0 * * 0
@daily, @midnight0 0 * * *
@hourly0 * * * *
@reboot

Não fazem parte do cron POSIX, mas quase toda implementação os aceita.

O que costuma pegar as pessoas


  • Quando o dia do mês e o dia da semana estão os dois restritos, o cron roda nos dias que casam com qualquer um dos dois, e não com os dois ao mesmo tempo. "* * 3 * 1" roda no dia 3 do mês e em toda segunda-feira. A exceção é quando um deles começa com asterisco: "* * */2 * 1" só roda em dia ímpar que também seja segunda. O manual do cron descreve isso errado.
  • Rode o servidor, e o cron junto com ele, em UTC. Um agendamento escrito num fuso com horário de verão pula uma execução uma vez por ano e repete outra na virada seguinte.
  • O cron padrão não tem campo para segundos nem para anos. Se você precisa dessa precisão, o cron é a ferramenta errada.
  • Evite o @reboot. Ele depende de como a máquina foi reiniciada e de quais serviços já estavam prontos naquele instante, o que dificulta raciocinar sobre ele.
  • Um agendamento que não cabe em cinco campos pode virar duas entradas. Para rodar algo a cada 90 minutos, escreva "0 */3 * * *" e "30 1/3 * * *" lado a lado.
  • Escreva o comando com caminhos absolutos. O cron roda com um PATH bem curto e quase nenhuma das variáveis de ambiente que o seu shell tem.

Perguntas frequentes sobre expressões cron


O que significam os cinco campos?
Nesta ordem: minuto, hora, dia do mês, mês e dia da semana. Um campo com asterisco aceita qualquer valor.

Domingo é 0 ou 7?
Os dois. A maior parte das implementações aceita 0 e 7 para domingo, e também os nomes de três letras, de SUN a SAT.

Por que minha tarefa não rodou no horário que eu esperava?
Os motivos de sempre são o servidor estar em outro fuso, a regra de dia do mês com dia da semana descrita acima, ou o comando falhar porque o cron não carrega o perfil do seu shell.

Esta página manda minha expressão para algum lugar?
Não. A expressão é lida e as execuções são calculadas no seu navegador; nada é enviado.

Wikipedia — Cron
Wikipedia — Crontab
Wikipedia — Daemon