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.
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-5 | De segunda a sexta às 9 da manhã |
| 0 9 * * 6,0 | Sábado e domingo às 9 |
| 0 0 * * 1 | Toda segunda-feira à meia-noite |
| 0 18 * * 5 | Toda 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
| Campo | Valores aceitos |
|---|---|
| Minuto | 0 – 59 |
| Hora | 0 – 23 |
| Dia do mês | 1 – 31 |
| Mês | 1 – 12, JAN – DEC |
| Dia da semana | 0 – 6, SUN – SAT (0 = 7) |
Caracteres especiais
| Caractere | Significado |
|---|---|
| * | qualquer valor |
| , | separa valores numa lista |
| - | um intervalo de valores |
| / | passos dentro de um intervalo |
Atalhos
| @yearly, @annually | 0 0 1 1 * |
| @monthly | 0 0 1 * * |
| @weekly | 0 0 * * 0 |
| @daily, @midnight | 0 0 * * * |
| @hourly | 0 * * * * |
| @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.