Sumário
Agendamento de Tarefas no Linux com CRONTAB
O Crontab é uma ferramenta nativa do Linux utilizada para agendar tarefas automáticas que são executadas em intervalos regulares ou em horários específicos. Para desenvolvedores e administradores de sistemas web, o uso do Crontab representa uma solução eficiente, confiável e leve para automatizar processos rotineiros, sem depender de ferramentas externas ou interfaces gráficas.
Em aplicações web, o Crontab é amplamente utilizado para:
- Executar scripts PHP, Python ou Shell para atualizações periódicas de dados;
- Importar ou exportar arquivos em horários programados (como integração com APIs, backups ou geração de relatórios);
- Enviar e-mails automáticos com notificações ou resumos;
- Limpar caches, logs ou arquivos temporários, mantendo o desempenho do servidor;
- Monitorar serviços e reiniciar processos em caso de falha.
Ao configurar tarefas agendadas corretamente, é possível automatizar rotinas críticas e garantir maior estabilidade, segurança e escalabilidade para seu ambiente web.
Sintaxe básica do comando CRONTAB
Para realizar um agendamento de backup ou varredura para exclusão de log ou coisa do tipo, usa-se o crontab. Segue abaixo sua forma de uso:
crontab [-u usuário] arquivo
crontab [-u usuário] [-e | -l | -r | -i]
-u usuário→ Define o usuário cujo crontab será manipulado (requer permissões de superusuário –sudo);-e→ Edita o crontab do usuário atual (abre o editor padrão do sistema);-l→ Lista todas as tarefas agendadas no crontab do usuário atual;-r→ Remove o crontab do usuário atual (apaga todas as tarefas agendadas);-i→ Utilizado com-r, pede confirmação antes de excluir o crontab.
Exemplo de uso: (crontab -e)
Abre o editor para adicionar ou modificar tarefas agendadas do usuário atual:
crontab -e
Lista as tarefas agendadas do usuário www-data (geralmente usado por servidores web como o Apache ou Nginx):
sudo crontab -u www-data -l
Um exemplo aplicado poderia ser a cópia dos arquivos de backup regularmente. Dessa forma você poderia plugar um pendrive no início da manhã e removê-lo ao final do dia. Conforme passos a seguir.
O HD externo será montado as 8 da manhã na pasta /media/usbdisk
00 08 * * * mount /dev/sdb1 /media/usbdisk
Será copiado o arquivo de backup da pasta de backup do oracle pra o hd externo as 10 e as 16 horas
00 10,16 * * * cp -vRua /u01/app/oracle/backup/. /media/usbdisk/backups
As 11 horas será procurado o arquivo no hd externo com mais de 30 dias de salvo e será excluído
00 11 * * * find /media/usbdisk/backups/. -mtime +30 -exec rm -rf {} \;
As 18h15 será desmontado o HD e poderá ser retirado da USB
15 18 * * * umount /media/usbdisk