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 usuário do sistema pode ter seu próprio arquivo crontab. O arquivo contem uma lista de jobs cron onde cada linha define um agendamento usando uma expressão temporal de cinco campos.
Sintaxe de expressões Cron
Uma expressão cron consiste em cinco campos separados por espaços:
- 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).
Padrões Cron comuns
As expressões cron mais utilizadas:
- */5 * * * * — a cada 5 minutos, comumente usado para verificações de saude
- 0 * * * * — a cada hora no minuto 0
- 0 0 * * * — diariamente a meia-noite, padrão 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 expressão Cron →Casos de uso comuns
Jobs cron automatizam praticamente qualquer tarefa repetitiva do sistema:
- Rotação e limpeza de logs — comprimir ou excluir automaticamente arquivos de log antigos
- Backups de banco de dados — agendar comandos regulares de backup
- Geração de relatorios — compilar relatorios diarios, semanais ou mensais
- Limpeza de cache — limpar periodicamente entradas de cache expiradas
- Monitoramento do sistema — executar verificações 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
- Depuração — verifique /var/log/syslog ou /var/log/cron
Perguntas frequentes
O cron pode agendar tarefas com precisão de segundos?
O cron padrão não suporta segundos. Use uma solucao alternativa ou mude para systemd timers.
Qual a diferença entre cron e systemd timers?
Cron e o agendador Unix tradicional. Systemd timers oferecem precisão 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.