UUtilpedia
23/10/2026 · 6 min de leitura

O que é cron e como montar uma expressão crontab (guia prático)

Entenda o que é cron e aprenda a montar expressões crontab: os 5 campos, os caracteres especiais, exemplos prontos e como agendar tarefas no servidor Linux.

Por Daniel Srougi · Atualizado em 23/10/2026.

Se você já quis rodar um backup toda madrugada, limpar arquivos temporários toda segunda ou disparar um script a cada 5 minutos, o cron é a ferramenta certa. Ele é o agendador de tarefas padrão dos sistemas Unix/Linux: um serviço que fica rodando em segundo plano e executa comandos nos horários que você definir. Essas regras ficam guardadas num arquivo chamado crontab (de "cron table"), e cada linha dele descreve uma tarefa agendada. O que costuma assustar quem está começando é a sintaxe — aquela sequência de asteriscos e números. Neste guia você vai desmontar essa expressão campo por campo e, no fim, montar as suas sem medo (ou deixar o gerador de crontab montar por você).

A anatomia dos 5 campos

Toda expressão de cron tem cinco campos separados por espaço, seguidos do comando a executar. Lidos da esquerda para a direita, eles vão do mais específico (minuto) para o mais amplo (dia da semana). O diagrama abaixo mostra cada posição e seus valores possíveis:

 ┌───────────── minuto (0 - 59)
 │ ┌───────────── hora (0 - 23)
 │ │ ┌───────────── dia do mês (1 - 31)
 │ │ │ ┌───────────── mês (1 - 12)
 │ │ │ │ ┌───────────── dia da semana (0 - 6, sendo 0 = domingo)
 │ │ │ │ │
 *  *  *  *  *   comando-a-executar

Ou seja: 30 8 * * * significa "no minuto 30, da hora 8, em qualquer dia do mês, qualquer mês, qualquer dia da semana" — todo dia às 8h30. Uma dica para nunca mais errar: comece sempre lendo o campo dos minutos e vá subindo. Vale lembrar que o campo dia da semana aceita tanto números (0 a 6) quanto abreviações em inglês (SUN, MON, TUE...), e que alguns sistemas aceitam 7 como domingo além do 0.

Os caracteres especiais

Os números sozinhos resolvem casos simples, mas o poder do cron está em quatro caracteres especiais. Eles podem ser usados em qualquer um dos cinco campos:

  • Asterisco (*) — "todos os valores". Em * * * * * a tarefa roda a cada minuto. No campo da hora, * significa "em todas as horas".
  • Barra (/) — "a cada N". Define um intervalo. */5 no campo de minutos quer dizer "a cada 5 minutos"; */2 no campo de horas, "a cada 2 horas".
  • Hífen (-) — um intervalo contínuo. 1-5 no campo dia da semana cobre de segunda a sexta. 9-17 no campo da hora cobre das 9h às 17h.
  • Vírgula (,) — uma lista de valores. 0,30 no campo de minutos roda nos minutos 0 e 30. 1,3,5 no dia da semana roda segunda, quarta e sexta.

Esses caracteres se combinam. Por exemplo, 0 9-18/2 * * 1-5 significa "no minuto 0, das 9h às 18h a cada 2 horas, de segunda a sexta". Quando a combinação começa a ficar complexa, vale conferir o resultado em linguagem natural antes de colar no servidor.

Exemplos prontos

Na prática, a maioria das tarefas cai em um punhado de padrões. Copie e adapte:

Expressão O que faz
* * * * * A cada minuto (útil para testar se o cron está funcionando)
*/15 * * * * A cada 15 minutos
0 * * * * No minuto 0 de toda hora (de hora em hora, "em ponto")
0 3 * * * Todos os dias às 3h da manhã (clássico para backups)
0 9 * * 1-5 Às 9h, de segunda a sexta (dias úteis)
0 0 1 * * À meia-noite do dia 1 de cada mês

Um cuidado: evite agendar tarefas pesadas para rodarem exatamente no minuto 0 de todas as horas, porque muitos scripts no servidor podem disparar ao mesmo tempo e competir por recursos. Espalhar os horários (um às 0, outro aos 7 minutos) costuma ser mais saudável.

Como colocar no servidor

Com a expressão em mãos, o próximo passo é registrá-la. No Linux, cada usuário tem seu próprio crontab. Para editar o seu, abra o terminal e rode:

crontab -e

Na primeira vez, o sistema pode pedir qual editor você quer usar (nano é o mais simples para iniciantes). Dentro do arquivo, adicione uma linha com a expressão seguida do comando. Por exemplo, para rodar um script de backup todo dia às 3h:

0 3 * * * /home/usuario/scripts/backup.sh

Salve e saia. O cron recarrega automaticamente — não precisa reiniciar nada. Comandos úteis para o dia a dia: crontab -l lista as tarefas atuais, e crontab -r apaga todas (cuidado com esse). Duas recomendações práticas: use sempre caminhos absolutos para scripts e executáveis (o cron roda com um ambiente mínimo e pode não achar comandos que funcionam no seu terminal), e redirecione a saída para um arquivo de log, como >> /var/log/meu-script.log 2>&1, para conseguir depurar quando algo falhar silenciosamente.

Monte a sua sem errar

Decorar a ordem dos campos leva tempo, e um asterisco no lugar errado pode fazer uma tarefa rodar a cada minuto em vez de uma vez por dia. Para montar a expressão com segurança — escolhendo horário, intervalo e dias num formulário visual e vendo o resultado explicado em português —, use o gerador de crontab da Utilpedia. É grátis, funciona direto no navegador e você sai de lá com a linha pronta para colar no crontab -e.

Perguntas frequentes

O que significam os asteriscos em uma expressão cron?

Cada asterisco representa um dos cinco campos (minuto, hora, dia do mês, mês e dia da semana) e quer dizer 'todos os valores daquele campo'. Em 5 asteriscos, como * * * * *, a tarefa roda a cada minuto. Trocar um asterisco por um número restringe a execução àquele valor específico.

Como faço uma tarefa rodar a cada 5 minutos no cron?

Use a barra no campo de minutos: */5 * * * * comando. A barra significa 'a cada N', então */5 roda nos minutos 0, 5, 10, 15 e assim por diante. Para a cada 2 horas, o padrão seria 0 */2 * * *.

Como adiciono uma tarefa cron no servidor Linux?

Rode crontab -e no terminal para abrir o editor, adicione uma linha com a expressão seguida do comando (usando caminho absoluto), salve e saia. O cron recarrega sozinho. Para ver as tarefas já cadastradas, use crontab -l.

Continue lendo