Informática
Expressões cron explicadas
Cole a linha do crontab sem o comando: veja a descrição em palavras, a tabela de valores de minutos, horas, dias, meses e dias da semana e as próximas datas em que a tarefa será executada.
Como ler uma linha do crontab
Uma expressão cron tem cinco campos: minuto (0-59), hora (0-23), dia do mês (1-31), mês (1-12) e dia da semana (0-7, em que 0 e 7 são domingo). O asterisco significa “qualquer”, a vírgula separa valores, o hífen indica um intervalo e a barra um passo: */15 nos minutos significa 0, 15, 30 e 45.
Assim, 0 9 * * 1-5 executa a tarefa às 9:00 de segunda a sexta, 30 2 1 * * às 2:30 do primeiro dia de cada mês, */10 * * * * a cada dez minutos. As macros são atalhos: @daily equivale a 0 0 * * *, @hourly a 0 * * * *, @weekly a 0 0 * * 0.
Uma exceção surpreende muita gente: se tanto o dia do mês quanto o dia da semana forem diferentes de *, o cron executa a tarefa quando qualquer um dos dois for verdadeiro. 0 12 1 * 1 não quer dizer “no dia 1 se for segunda”, e sim “todo dia 1 e toda segunda-feira”.
Erros comuns
- Escrever * * * * * pensando em “uma vez por dia”: significa a cada minuto.
- Esquecer que o cron usa o fuso horário do servidor, não o de quem olha: aqui as próximas execuções estão no fuso do seu navegador.
- Esperar uma tarefa no dia 31 de todo mês: nos meses de 30 dias e em fevereiro ela simplesmente não roda.
Perguntas frequentes
O cron aceita segundos?
O cron clássico não: a menor unidade é o minuto. Alguns sistemas, como Quartz ou Spring, acrescentam um sexto campo para os segundos, com outra sintaxe.
O que acontece com o horário de verão?
Na noite em que o relógio é adiantado, uma tarefa às 2:30 pode ser pulada; quando é atrasado, pode rodar duas vezes. Por isso tarefas importantes são agendadas fora da faixa das 2 às 3 ou em UTC.
Posso usar nomes de dias e meses?
Sim: MON-FRI para os dias e JAN-DEC para os meses, em inglês e sem diferenciar maiúsculas de minúsculas.
Como funciona este cálculo
Cada campo é expandido no conjunto de valores permitidos: * é o intervalo inteiro, a-b um intervalo, x/n os valores a partir de x em passos de n, e listas separadas por vírgulas são unidas. No dia da semana, 7 vira 0 (domingo). Um dia serve se o mês é permitido e, quando os dois campos de dia estão restritos, se o dia do mês ou o dia da semana serve. As próximas execuções são procuradas dia a dia, até oito anos à frente, no fuso horário do navegador.
Calculadoras relacionadas
Formatador e validador JSON
Formate, minifique e valide JSON: indentação, chaves ordenadas e posição exata dos erros.
Testador de expressões regulares
Teste uma regex num texto: correspondências destacadas, grupos de captura e substituição, em JavaScript.
Conversor de timestamp Unix
De timestamp Unix para data e hora e de volta: segundos, milissegundos, UTC e hora local.