O que é um Cron Job? Guia prático

Aprende como funcionam os Cron Jobs, os ficheiros crontab e as tarefas recorrentes, com recomendações para testes seguros.

Como funciona o Cron

O Cron é um agendador de sistemas Unix. O serviço lê ficheiros crontab e inicia um comando quando a data e a hora correspondem à expressão.

30 2 * * * /usr/local/bin/backup

Este exemplo inicia uma cópia de segurança 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 num script testado torna o agendamento mais legível e fácil de manter.

Utilizações comuns

  • Cópias de segurança e relatórios
  • Limpeza de cache e rotação de registos
  • Importação e sincronização de dados
  • Verificações de integridade e notificações

Crontabs de utilizador e de sistema

O comando crontab -e edita o agendamento do utilizador atual. As tarefas são executadas com as permissões desse utilizador e recebem normalmente um ambiente mais limitado do que um terminal interativo. Uma crontab de sistema pode ter um campo adicional para o nome do utilizador, pelo que deves confirmar o formato antes de copiares uma linha.

Os locais habituais incluem /etc/crontab, /etc/cron.d e diretórios como /etc/cron.daily. Podem variar consoante o sistema operativo.

Registos e resolução de problemas

Se um comando funcionar no terminal mas falhar no Cron, confirma o utilizador, o diretório atual, o PATH, a shell e as variáveis de ambiente. Usa caminhos absolutos e encaminha a saída e os erros para um registo controlado.

Confirma também que o serviço Cron está ativo e que a crontab pertence ao utilizador certo. Um fuso horário diferente explica frequentemente uma execução à hora errada.

Tarefas recorrentes fiáveis

Prepara a tarefa para ser repetida em segurança. Usa um bloqueio se duas execuções não puderem coincidir, devolve códigos de saída úteis e monitoriza falhas. Não coloques segredos diretamente na crontab e limita o acesso aos ficheiros de configuração.

Usa caminhos absolutos, define as variáveis de ambiente necessárias e regista os erros. Testa o comando com o mesmo utilizador que o Cron.

Cola um agendamento no descodificador Cron ou cria um com o gerador Cron.