Neste artigo
O que e Crontab?
Crontab (tabela cron) e um agendador de tarefas baseado em tempo em sistemas operacionais tipo Unix. Permite agendar comandos ou scripts para executar automaticamente em intervalos especificados.
Cada usuario do sistema pode ter seu proprio arquivo crontab. O arquivo contem uma lista de jobs cron onde cada linha define um agendamento usando uma expressao temporal de cinco campos.
Sintaxe de expressoes Cron
Uma expressao cron consiste em cinco campos separados por espacos:
- Minuto (0-59) — especifica em qual minuto o job deve executar
- Hora (0-23) — especifica a hora em formato 24 horas
- Dia do mes (1-31) — especifica o dia do mes
- Mes (1-12) — especifica o mes do ano
- Dia da semana (0-7, onde 0 e 7 sao domingo)
Caracteres especiais: * (qualquer valor), / (valores de passo), - (intervalos) e virgula (listas).
Padroes Cron comuns
As expressoes cron mais utilizadas:
- */5 * * * * — a cada 5 minutos, comumente usado para verificacoes de saude
- 0 * * * * — a cada hora no minuto 0
- 0 0 * * * — diariamente a meia-noite, padrao para backups
- 0 0 * * 1-5 — cada dia util a meia-noite
- 0 0 1 * * — primeiro dia de cada mes a meia-noite
- 0 9,17 * * 1-5 — as 9h e 17h em dias uteis
Experimente gratuitamente — sem cadastro
Construir uma expressao Cron →Casos de uso comuns
Jobs cron automatizam praticamente qualquer tarefa repetitiva do sistema:
- Rotacao e limpeza de logs — comprimir ou excluir automaticamente arquivos de log antigos
- Backups de banco de dados — agendar comandos regulares de backup
- Geracao de relatorios — compilar relatorios diarios, semanais ou mensais
- Limpeza de cache — limpar periodicamente entradas de cache expiradas
- Monitoramento do sistema — executar verificacoes de saude em intervalos regulares
Dicas e armadilhas
Mesmo desenvolvedores experientes encontram armadilhas comuns do cron:
- Consciencia de fuso horario — cron usa o fuso horario do sistema. Configure TZ ou use UTC
- Jobs sobrepostos — use flock para evitar multiplas instancias simultaneas
- Problemas de PATH — cron executa com ambiente minimo. Use sempre caminhos absolutos
- Tratamento de saida — cron envia stdout e stderr por email. Redirecione para um arquivo de log
- Depuracao — verifique /var/log/syslog ou /var/log/cron
Perguntas frequentes
O cron pode agendar tarefas com precisao de segundos?
O cron padrao nao suporta segundos. Use uma solucao alternativa ou mude para systemd timers.
Qual a diferenca entre cron e systemd timers?
Cron e o agendador Unix tradicional. Systemd timers oferecem precisao sub-minuto e melhor logging mas sao especificos do Linux.
Como testar um job cron?
Execute o comando manualmente primeiro, simule o ambiente cron com env -i, depois agende a cada minuto para verificar.