Saltar para o conteúdo

Gerador de expressões cron:
quando é que vai correr?

Escolha uma frequência e uma hora. O gerador escreve a expressão de cinco campos, lê-a de volta em português corrente e lista as próximas dez datas em que vai correr — para verificar o horário antes de chegar a um crontab, não depois da execução das 03:30.

Sintaxe cron

A ler 30 3 * * 1-5

Cada expressão cron responde às mesmas cinco perguntas, da esquerda para a direita — aqui, com um horário real.

30 minuto 0 – 59 à meia
3 hora 0 – 23 3h da manhã, hora do servidor
* dia do mês 1 – 31 qualquer data
* mês 1 – 12 qualquer mês
1-5 dia da semana 0 – 7 · 0 e 7 = dom. segunda a sexta-feira

Lido como frase: segunda a sexta-feira, às 03:30. 30 3 * * 1-5

Da linguagem simples ao crontab

Veja o horário antes de o cron o executar

A maioria das expressões cron é testada pela primeira vez na execução das 03:30, em produção. Este gerador move esse teste para o seu navegador:

  • Perguntas estruturadas, não suposições. Frequência, dia, hora — cada ambiguidade da versão por extenso passa a ser um controlo explícito.
  • As próximas dez execuções, calculadas. Um interpretador real percorre o calendário para poder ler o horário como datas, não como sintaxe.
  • Resultado POSIX portátil. Cinco campos, só números — funciona em qualquer crontab, do Alpine ao AIX. Os símbolos exóticos ficam sinalizados, não gerados.

Uma expressão cron, campo a campo

*/15 9-17 * * 1-5
*/15minuto — a cada 15: :00, :15, :30, :454× / hora
9-17hora — um intervalo: das 09:00 às 17:459 horas
*dia do mês — sem restriçãoqualquer
*mês — sem restriçãoqualquer
1-5dia da semana — de segunda a sexta-feiradias úteis
A frase completa: a cada 15 minutos, 09:00–17:45, seg.–sex. Quer o sentido inverso para uma expressão que não escreveu? É para isso que serve o nosso tradutor de cron.
Símbolos do cron

O que significam *, */5 e @daily

Cinco funcionam em qualquer crontab. O sexto é exclusivo do Quartz e não é instalado.

*

Corresponde a tudo — a predefinição, e a mais ruidosa. No campo dos minutos significa sessenta execuções por hora, e é aí que começa o pedido de suporte «porque correu isto 60 vezes».

→ se quer dizer uma vez, escreva um número
*/5

Um passo — a cada 5.º valor. Os passos não se propagam entre campos: */90 no campo dos minutos torna-se silenciosamente «aos :00» — uma cadência de 90 minutos precisa de duas linhas.

→ os passos vivem dentro de um único campo
1-5

Um intervalo — seg.–sex. no campo do dia da semana, 9–17 no campo da hora. Combina-se com uma lista: 1-5,0 são os dias úteis mais o domingo.

→ intervalos e listas combinam-se livremente
0,30

Uma lista — valores exatos, separados por vírgulas. A forma portátil de dizer «duas vezes por hora» ou «janeiro, abril, julho, outubro».

→ liste os valores exatos que pretende
@daily

Atalhos — @hourly @daily @weekly @reboot. Práticos onde são suportados, mas @reboot corre quando o daemon do cron arranca, o que nem sempre é um arranque do sistema.

→ cinco campos numéricos funcionam em qualquer cron
MON#1

Não é cron. # L W ? pertencem ao Quartz — Jenkins, Spring, algumas ferramentas de CI. Cole-os num crontab e a linha não é instalada.

→ o crontab é só POSIX de 5 campos
Receitas prontas a copiar

Horários de cron prontos a usar

Todos são POSIX válidos. Para os casos menos comuns, como «todos os 2 de março às 17:30», consulte a nossa biblioteca de exemplos de cron.

A cada minuto* * * * *
A cada 5 minutos*/5 * * * *
De hora a hora, à hora certa0 * * * *
A cada 2 horas0 */2 * * *
Todas as noites, às 03:3030 3 * * *
Dias úteis, às 09:000 9 * * 1-5
Domingos, às 02:000 2 * * 0
Dia 1 do mês, às 06:000 6 1 * *
Trimestral (dia 1 de Jan · Abr · Jul · Out)0 6 1 1,4,7,10 *
FAQ

Perguntas frequentes sobre expressões cron

Transforma um horário que consegue dizer por palavras, como «todos os dias úteis às nove», na expressão de cinco campos que o cron lê: 0 9 * * 1-5. Esta ferramenta vai mais além. Lê a expressão de volta em português e calcula as suas próximas dez execuções, para poder verificar o horário como datas. Também sinaliza as duas armadilhas clássicas: a regra OR dos campos de dia, e o erro do asterisco em vez de zero.

Da esquerda para a direita: minuto (0–59), hora (0–23), dia do mês (1–31), mês (1–12), dia da semana (0–7, em que 0 e 7 significam ambos domingo). Cada campo aceita um número, uma lista (0,30), um intervalo (1-5), um passo (*/15), ou * para «qualquer». Alguns agendadores acrescentam um sexto campo para os segundos (Quartz, Spring) — um crontab não o aceita.

Não numa única linha — os passos não transportam o resto entre campos, por isso */90 no campo dos minutos significa apenas «aos :00». A resposta são duas linhas de crontab que se intercalam: 0 0-21/3 * * * (00:00, 03:00, 06:00…) mais 30 1-22/3 * * * (01:30, 04:30, 07:30…) — juntas, a cada 90 minutos. O mesmo truque cobre qualquer cadência que não divida 60.

Porque o campo dos minutos era *. * 3 * * * significa «todos os minutos em que a hora é 3» — das 03:00 às 03:59, sessenta execuções. O que pretendia era 0 3 * * *. É o erro clássico do cron, e a razão pela qual esta ferramenta escreve sempre um minuto explícito, a menos que escolha mesmo «a cada minuto».

O cron corre quando qualquer um dos dois corresponde — união, não interseção. Está na especificação POSIX, e apanha muita gente desprevenida. Tome-se 0 9 1-7 * 1, uma tentativa natural de exprimir «a primeira segunda-feira do mês». Corre nos dias 1–7 e todas as segundas-feiras: 10 ou 11 manhãs por mês em vez de uma. A vista da armadilha, nesta página, calcula as duas leituras lado a lado e mostra a correção portátil.

A hora local do servidor — o cron não tem campo de fuso horário. Se a máquina corre em UTC (como a maioria das imagens cloud), as 09:00 no crontab são 09:00 UTC. Alguns crons (cronie no RHEL/Fedora, FreeBSD) respeitam uma linha CRON_TZ=; o vixie-cron clássico do Debian não. E atenção à hora de verão se o servidor correr num fuso local: nas noites de mudança, as 02:30 podem acontecer duas vezes — ou nenhuma. Agendar fora do intervalo 01:00–03:00, ou manter os servidores em UTC, evita o problema por completo.

O cron regista que iniciou a tarefa; nada de nativo diz se foi bem-sucedida. Três camadas: redirecionar a saída para um registo (>> /var/log/job.log 2>&1), definir MAILTO= para um endereço que alguém leia, e depois colocar uma verificação independente sobre o resultado. A terceira camada funciona sempre que a saída é visível a partir de fora: uma página regenerada, um certificado renovado, um sitemap. A vista de falhas silenciosas, nesta página, percorre todo o modo de falha.

As ferramentas grátis são só o começo.
O Uptimia cuida dos seus sites.

Uptime, SSL, validade de domínio, velocidade de página, transações — monitorização em 171+ locais em todo o mundo. Grátis por 30 dias.

30 dias grátis sem cartão cancele quando quiser plano gratuito após o teste
Mais de 100.000 sites monitorizados · conforme o RGPD