Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Guia Completo de Crontab para Linux: Entenda e Aplique com Exemplos Práticos

O "crontab" no Linux oferece uma flexibilidade enorme para agendar e automatizar uma variedade de tarefas, desde simples backups até tarefas complexas de manutenção do sistema. Abaixo, forneço uma série de exemplos que demonstram como configurar diferentes tipos de tarefas utilizando o crontab. Esses exemplos ajudarão a ilustrar o poder e a versatilidade dessa ferramenta.

Exemplos:

1. Executar um Script a Cada Minuto

Se você quiser executar um script a cada minuto, use a seguinte configuração:

* * * * * /home/user/script.sh

Esse comando executará /home/user/script.sh todos os minutos.

2. Executar um Comando Todos os Dias à Meia-Noite

Para agendar uma tarefa que execute diariamente à meia-noite:

0 0 * * * /usr/bin/daily_task.sh

Isso fará com que o script daily_task.sh seja executado exatamente à meia-noite todos os dias.

3. Executar uma Tarefa a Cada Hora

Para executar um comando a cada hora, no minuto 0:

0 * * * * /home/user/hourly_task.sh

Isso executará o script hourly_task.sh no início de cada hora.

4. Executar uma Tarefa Todos os Domingos às 3 da Manhã

Para agendar uma tarefa para rodar todos os domingos às 3 da manhã:

0 3 * * 0 /home/user/sunday_task.sh

Este comando executará sunday_task.sh todos os domingos às 3:00.

5. Executar uma Tarefa no Primeiro Dia de Cada Mês às 4:30

Para executar uma tarefa no primeiro dia de cada mês:

30 4 1 * * /home/user/monthly_task.sh

Isso executará monthly_task.sh às 4:30 da manhã no dia 1 de cada mês.

6. Limpeza de Arquivos Temporários a Cada 15 Minutos

Se você deseja limpar arquivos temporários a cada 15 minutos:

*/15 * * * * /usr/bin/cleanup_temp.sh

Esse comando executará cleanup_temp.sh a cada 15 minutos.

7. Executar uma Tarefa de Backup às 2:30 da Manhã de Segunda a Sexta

Para agendar backups durante os dias úteis (segunda a sexta) às 2:30 da manhã:

30 2 * * 1-5 /home/user/backup.sh

Isso executará backup.sh às 2:30 da manhã de segunda a sexta-feira.

8. Reiniciar um Serviço Específico Todos os Dias às 5 da Tarde

Para reiniciar um serviço (por exemplo, Apache) todos os dias às 5 da tarde:

0 17 * * * /usr/sbin/service apache2 restart

Este comando reiniciará o serviço Apache diariamente às 17:00.

9. Enviar um E-mail de Relatório Toda Segunda-feira às 8 da Manhã

Para enviar um relatório semanal por e-mail toda segunda-feira às 8:00:

0 8 * * 1 /usr/bin/send_weekly_report.sh | mail -s "Weekly Report" user@example.com

Este comando executará send_weekly_report.sh e enviará a saída por e-mail toda segunda-feira às 8 da manhã.

10. Sincronizar Diretórios de Hora em Hora

Se você deseja sincronizar diretórios de hora em hora, use:

0 * * * * rsync -av /source/directory/ /destination/directory/

Isso executará a sincronização entre os diretórios a cada hora.

11. Executar um Script Apenas no Dia 15 de Cada Mês

Para executar uma tarefa apenas no dia 15 de cada mês às 6:00 da manhã:

0 6 15 * * /home/user/monthly_report.sh

Isso executará monthly_report.sh no dia 15 de cada mês às 6:00.

12. Limpar o Cache de DNS Todos os Dias às 2 da Manhã

Para limpar o cache de DNS diariamente às 2:00 da manhã:

0 2 * * * /etc/init.d/nscd restart

Isso reiniciará o serviço nscd, limpando o cache de DNS, todos os dias às 2:00.

13. Fazer Backup do Banco de Dados MySQL Todos os Dias à Meia-Noite

Para fazer backup de um banco de dados MySQL diariamente:

0 0 * * * /usr/bin/mysqldump -u root -pPassword dbname > /home/user/db_backup.sql

Este comando fará o backup do banco de dados dbname diariamente à meia-noite.

14. Apagar Arquivos com Mais de 30 Dias no Diretório /tmp

Para apagar arquivos antigos no diretório /tmp todos os dias às 1:00 da manhã:

0 1 * * * find /tmp -type f -mtime +30 -exec rm {} \;

Isso removerá arquivos com mais de 30 dias no diretório /tmp.

15. Atualizar Pacotes do Sistema Todos os Sábados às 4 da Manhã

Para agendar atualizações automáticas de pacotes todos os sábados:

0 4 * * 6 apt-get update && apt-get upgrade -y

Isso atualizará os pacotes do sistema todos os sábados às 4:00 da manhã.

16. Registrar a Utilização da CPU a Cada 5 Minutos

Para gravar o uso da CPU em um arquivo de log a cada 5 minutos:

*/5 * * * * top -b -n1 | grep "Cpu(s)" >> /home/user/cpu_usage.log

Isso registrará as informações da CPU em cpu_usage.log a cada 5 minutos.

17. Enviar Notificação se um Serviço Parar de Funcionamento

Para verificar se um serviço está em execução e enviar uma notificação se ele parar:

*/10 * * * * systemctl is-active --quiet apache2 || echo "Apache stopped" | mail -s "Alert" user@example.com

Este comando verifica o serviço apache2 a cada 10 minutos e envia um e-mail se o serviço parar.

18. Bloquear Usuários a Certos Horários

Para bloquear um usuário específico (por exemplo, user123) de fazer login de segunda a sexta das 22:00 às 6:00:

0 22 * * 1-5 /usr/sbin/usermod -L user123
0 6 * * 1-5 /usr/sbin/usermod -U user123

Isso bloqueará o usuário user123 às 22:00 e desbloqueará às 6:00 de segunda a sexta.

19. Enviar Relatórios de Disco ao Administrador

Para enviar um relatório do uso de disco ao administrador toda sexta-feira às 9:00:

0 9 * * 5 df -h | mail -s "Disk Usage Report" admin@example.com

Este comando enviará o uso de disco por e-mail toda sexta-feira às 9:00.

20. Apagar Logs com Mais de 7 Dias

Para remover logs com mais de 7 dias todos os dias às 3:00:

0 3 * * * find /var/log -type f -mtime +7 -exec rm {} \;

Isso apagará todos os arquivos de log com mais de 7 dias no diretório /var/log.

21. Checar e Corrigir Permissões de Arquivos Regularmente

Para checar e corrigir permissões de arquivos todos os dias às 23:00:

0 23 * * * chmod -R 755 /var/www/html

Este comando corrigirá as permissões dos arquivos no diretório /var/www/html diariamente.

22. Backup de Arquivos Importantes a Cada Semana

Para fazer backup de arquivos importantes toda segunda-feira às 4:00:

0 4 * * 1 tar -czf /home/user/backups/important_files_$(date +\%Y\%m\%d).tar.gz /home/user/important_files/

Isso criará um arquivo tar.gz com data no nome do backup dos arquivos importantes.

23. Desligamento Programado do Sistema

Para programar o desligamento do sistema às 23:00 todos os dias:

0 23 * * * /sbin/shutdown -h now

Isso desligará o sistema todos os dias às 23:00.

24. Sincronizar o Relógio do Sistema com o Servidor NTP

Para sincronizar o relógio do sistema com um servidor NTP todos os dias às 12:00:

0 12 * * * /usr/sbin/ntpdate pool.ntp.org

Este comando sincroniza o relógio do sistema ao meio-dia diariamente.

25. Teste de Conexão à Internet a Cada 10 Minutos

Para verificar a conexão à internet a cada 10 minutos e registrar o resultado:

*/10 * * * * ping

 -c 1 google.com || echo "Internet down" >> /home/user/internet_status.log

Isso verificará a conexão à internet e registrará uma falha no arquivo internet_status.log.

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.