===== 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.