O que é um Cron Job? Guia prático
Aprenda como funcionam os Cron Jobs, arquivos crontab e tarefas recorrentes, com recomendações para testes seguros.
Como o Cron funciona
Cron é um agendador presente em sistemas Unix. O serviço lê arquivos crontab e inicia um comando quando a data e a hora correspondem à expressão.
30 2 * * * /usr/local/bin/backup
Esse exemplo inicia um backup todos os dias às 02:30.
Uma entrada também pode definir variáveis, redirecionar a saída ou chamar um script. Manter a lógica complexa em um script testado geralmente deixa o agendamento mais legível e fácil de manter.
Usos comuns
- Backups e geração de relatórios
- Limpeza de cache e rotação de logs
- Importação de dados
- Verificações de integridade e notificações
Crontabs de usuário e do sistema
O comando crontab -e edita o agendamento do usuário atual. As tarefas são executadas com as permissões desse usuário e normalmente recebem um ambiente mais limitado do que um terminal interativo. Uma crontab do sistema pode ter um campo adicional para o nome do usuário, então confirme o formato antes de copiar uma linha.
Locais comuns incluem /etc/crontab, /etc/cron.d e diretórios periódicos como /etc/cron.daily. Os caminhos exatos variam conforme o sistema operacional.
Logs e solução de problemas
Quando um comando funciona no terminal, mas falha no Cron, confira o usuário, o diretório atual, o PATH, o shell e as variáveis de ambiente. Use caminhos absolutos e encaminhe a saída padrão e os erros para um log controlado.
Confira também se o serviço Cron está ativo e se a crontab pertence ao usuário correto. Uma diferença de fuso horário costuma explicar tarefas executadas na hora errada.
Como tornar tarefas recorrentes confiáveis
Prepare a tarefa para ser repetida com segurança. Use um bloqueio quando duas execuções não puderem se sobrepor, retorne códigos de saída úteis e monitore falhas. Não armazene segredos diretamente na crontab e restrinja o acesso aos arquivos de configuração.
Use caminhos absolutos, defina as variáveis de ambiente necessárias e registre os erros. Teste o comando com o mesmo usuário que executará o Cron.
Cole um agendamento no decodificador Cron ou crie um com o gerador Cron.