Como agendar tarefas automáticas com cron no Linux
Sintaxe, exemplos práticos e o erro mais comum (caminhos relativos).
O cron executa comandos automaticamente nos momentos que você definir, sem ter de se lembrar de o fazer manualmente.
crontab -e
Cada linha segue este formato:
# minuto hora dia mes dia-da-semana comando
0 2 * * * /caminho/para/o/script.sh
| Exemplo | Significado |
|---|---|
0 2 * * * | Todos os dias às 2h00 |
*/15 * * * * | A cada 15 minutos |
0 9 * * 1 | Todas as segundas às 9h00 |
0 0 1 * * | No dia 1 de cada mês |
Dica: use sempre o caminho completo para o script (não um relativo) — o cron não executa as tarefas a partir da sua pasta pessoal, por isso um caminho relativo que funciona bem manualmente pode falhar silenciosamente dentro do cron.
Ver as suas tarefas agendadas
crontab -l
Nota: se uma tarefa do cron não parecer
executar-se, reveja o registo do sistema
(grep CRON /var/log/syslog) para confirmar se foi
realmente tentada e que erro deu, se deu algum.
Perguntas frequentes
Porque é que o meu script funciona manualmente mas não a partir do cron?
A causa mais comum é usar um caminho relativo em vez do caminho completo — o cron não executa as tarefas a partir da sua pasta pessoal, por isso os caminhos relativos podem não encontrar os ficheiros de que precisam.
Como verifico se uma tarefa do cron foi executada?
Reveja o registo do sistema com 'grep CRON /var/log/syslog' (ou journalctl em sistemas mais modernos), que mostra se a tarefa foi tentada e qualquer erro associado.