Publicado em 18/06/2024
LinuxBashProgramaçãoEi Dev, futuro mestre do full-stack! Já imaginou poder automatizar tarefas no seu sistema Linux, deixando seu computador fazer o trabalho chato enquanto você se concentra em coisas mais úteis, como desenvolver aquele projeto que estava na gaveta ou fazer um update da Steam? Se sim, então chegou no lugar certo!
Hoje, vamos explorar a magia do crontab no Linux, te dando o poder de configurar suas próprias tarefas automatizadas no sistema, poupando tempo e gerando produtividade.
Antes de tudo, o que é Crontab?
O crontab é o programa usado para controlar a lista de tarefas do sistema criadas por usuário. Cada usuário da máquina pode ter seu próprio crontab, que pode ser fisicamente acessado em /etc/crontab
.
Por que usar a Crontab?
1. Automação Total: Crontab permite que você automatize praticamente qualquer tarefa através de scripts personalizados, como por exemplo a criação de backups regulares ou limpeza arquivos temporários.
2. Economia de Tempo: Menos tarefas manuais significam mais tempo para se concentrar no que realmente importa.
3. Confiabilidade: Uma vez configurado, o cron executa suas tarefas automaticamente, como um relógio suíço.
Passo a Passo: Adicionando uma Tarefa na Crontab
1. Abra o Terminal:
Pressione Ctrl + Alt + T
ou busque por “Terminal” no menu de aplicativos.
2. Acesse o Crontab:
No seu terminal, digite o comando:
crontab -e
Se é a primeira vez que você usa o crontab, ele pedirá para escolher um editor. Escolha um editor como nano ou vim, por exemplo (recomendo o vim).
3. Entenda a Sintaxe do Crontab:
Cada linha no crontab segue a seguinte estrutura:
* * * * * comando_a_ser_executado
Cada * representa uma marcação na composição do tempo de execução do seu comando, na seguinte ordem:
- O primeiro representa os minutos (0-59)
- O segundo representa as horas (0-23)
- O terceiro representa o dia do mês (1-31)
- O quarto representa o mês (1-12)
- O quinto representa o dia da semana (0-7, onde 0 e 7 são domingo)
Por exemplo, 30 2 * * *
significa que o comando será executado às 2:30 da manhã, todos os dias.
4. Adicione sua Tarefa:
Imagine que você queira criar um backup diário de uma pasta às 2:00 da manhã. Adicione a seguinte linha:
0 2 * * * tar -czf /home/seu_usuario/backup.tar.gz /home/seu_usuario/minha_pasta/
Salve e feche o editor. Caso esteja no vim, precione Esc + wq + Enter
para salvar, ou se estiver no nano utilize Ctrl + x
, depois y + Enter
.
5. Permissionamento e Localização do Arquivo
Para o seu script rodar corretamente, é importante estar atento ao permissionamento do arquivo, que deve ser 755. Além disso, para melhor organização do seus scripts no sistema, é recomendado salvá-lo na pasta de scripts customizados do usuário, que fica em /usr/local/bin
. Você pode fazer isso com o seguinte comando:
sudo chmod 755 /usr/local/bin/seu_script.sh
Pronto, você já automatizou a sua primeira tarefa no sistema ! Vamos tornar isso mais interessante com alguns exemplos práticos:
1. Backup Semanal:
0 3 * * 1 rsync -a /home/seu_usuario/diretorio_origem/ /home/seu_usuario/diretorio_destino/
Este comando faz um backup semanal às 3:00 da manhã toda segunda-feira. O diretório de origem pode ser onde estão localizadas as suas VMs (Maquinas Virtuais) e o destino a pasta do Google Drive, por exemplo.
2. Limpar Arquivos Temporários Diariamente:
0 4 * * * rm -rf /home/seu_usuario/temp/*
Limpa a pasta de arquivos temporários todos os dias às 4:00 da manhã.
Dicas e Recomendações
- Teste script: Antes de adicionar um comando ao crontab, faça um no terminal para garantir que tudo está funcionando como esperado.
- Utilize as pastas do sistema: Por padrão, o Linux Ubuntu já possuí pastas de execução de tarefas separadas por tempo (exemplo
/etc/cron.daily/
), você pode adicionar sua tarefa diretamente nessa pasta para que seja executada. - Debugando: Se suas tarefas não estão sendo executadas, verifique os logs em
/var/log/syslog
.
That’s All Folks!
Agora que você tem o poder do cron nas suas mãos, você pode automatizar aquelas tarefas chatas e repetitivas, ganhando mais tempo para o que realmente importa: desenvolver, aprender e, claro, tomar aquele café quentinho.