===== Exemplos do comando cron ===== ==== Nível Básico ==== * **Executar um script diariamente às 7:00 da manhã:** - 0 7 * * * /caminho/para/script.sh - Executa o script todos os dias às 7:00 da manhã. * **Executar um comando a cada hora:** - 0 * * * * /caminho/para/comando - O comando será executado na primeira hora de cada hora. * **Agendar a execução de um script todos os domingos às 12:00:** - 0 12 * * 0 /caminho/para/script.sh - Executa o script todos os domingos ao meio-dia. * **Exibir uma mensagem de alerta no terminal a cada 5 minutos:** - */5 * * * * echo "Alerta: cheque o sistema!" - Exibe a mensagem "Alerta: cheque o sistema!" a cada 5 minutos. ==== Nível Intermediário ==== * **Fazer backup de um diretório todas as noites às 2:00 da manhã:** - 0 2 * * * tar -czf /backup/backup-$(date +\%Y\%m\%d).tar.gz /diretorio/alvo - Gera um backup de um diretório todas as noites às 2:00, salvando o arquivo com a data no nome. * **Limpar logs antigos toda segunda-feira às 3:30 da manhã:** - 30 3 * * 1 find /var/log -type f -name "*.log" -mtime +30 -delete - Remove logs antigos com mais de 30 dias, toda segunda-feira às 3:30 da manhã. * **Executar um script a cada 15 minutos:** - */15 * * * * /caminho/para/script.sh - O script será executado a cada 15 minutos. * **Enviar uma mensagem de email com o uso de disco às 6:00 todos os dias:** - 0 6 * * * df -h | mail -s "Uso de disco diário" usuario@dominio.com - Envia um email com o relatório do uso de disco às 6:00 da manhã todos os dias. ==== Nível Avançado ==== * **Reiniciar um serviço automaticamente toda sexta-feira às 2:00:** - 0 2 * * 5 systemctl restart apache2 - Reinicia o serviço `apache2` todas as sextas-feiras às 2:00 da manhã. * **Executar um script apenas nos dias úteis às 8:00 da manhã:** - 0 8 * * 1-5 /caminho/para/script.sh - Executa o script de segunda a sexta-feira, às 8:00 da manhã. * **Agendar a execução de uma tarefa no último dia de cada mês:** - 0 0 28-31 * * [ "$(date +\%d -d tomorrow)" = "01" ] && /caminho/para/script.sh - Executa o script no último dia de cada mês. * **Executar um comando a cada 10 minutos, mas apenas durante o horário de expediente (9:00 - 18:00):** - */10 9-18 * * * /caminho/para/comando - Executa o comando a cada 10 minutos entre 9:00 e 18:00. ==== Nível Especializado ==== * **Executar uma tarefa de monitoramento a cada minuto e logar a saída com timestamp:** - * * * * * /caminho/para/script_monitoramento.sh >> /var/log/monitoramento_$(date +\%Y\%m\%d).log 2>&1 - Executa o script de monitoramento a cada minuto e loga a saída com timestamp no nome do arquivo. * **Definir uma tarefa cron com variável de ambiente personalizada:** - MAILTO="admin@dominio.com" HOME=/home/usuario * * * * * /caminho/para/script.sh - Define a variável `MAILTO` para enviar o resultado por email e especifica o diretório `HOME` antes de executar o script. * **Desligar o sistema automaticamente em uma data e hora específicas:** - 30 22 31 12 * /sbin/shutdown -h now - Desliga o sistema às 22:30 no dia 31 de dezembro. * **Agendar uma tarefa que só roda no primeiro dia útil do mês:** - 0 9 1-7 * * [ "$(date +\%u)" -lt 6 ] && /caminho/para/script.sh - Verifica se o primeiro dia do mês é um dia útil (segunda a sexta) e executa o script. * **Rodar um script apenas no segundo sábado do mês:** - 0 9 8-14 * * [ "$(date +\%u)" = "6" ] && /caminho/para/script.sh - Verifica se o dia está entre 8 e 14 e se é um sábado, e então executa o script. * **Definir uma tarefa que roda em intervalos irregulares (ex.: de 5 em 5 minutos entre 9:00 e 12:00, e a cada 30 minutos entre 13:00 e 18:00):** - */5 9-12 * * * /caminho/para/script.sh - */30 13-18 * * * /caminho/para/script.sh - Cria dois cron jobs que cobrem intervalos diferentes durante o dia.