#!/bin/bash # Script para remover diretórios com mais de 45 dias de uma pasta especificada # Uso: ./cleanup_evaluations.sh /caminho/para/evaluations # Verifica se o argumento foi fornecido if [ -z "$1" ]; then echo "Erro: Você deve fornecer o caminho da pasta." echo "Uso: $0 /caminho/para/evaluations" exit 1 fi # Atribui o caminho à variável TARGET_DIR="$1" # Verifica se o diretório existe if [ ! -d "$TARGET_DIR" ]; then echo "Erro: O diretório '$TARGET_DIR' não existe." exit 2 fi LOG_FILE="log/cleanup_evaluations.log" DATA_ATUAL=$(date "+%Y-%m-%d %H:%M:%S") echo "========================================" >> "$LOG_FILE" echo "[$DATA_ATUAL] Iniciando limpeza em: $TARGET_DIR" >> "$LOG_FILE" # Conta quantos diretórios serão removidos (opção --dry-run para teste) # Se quiser testar antes, descomente a linha abaixo e comente a do rm # find "$TARGET_DIR" -type d -mtime +45 -print >> "$LOG_FILE" # Remove diretórios com mais de 45 dias find "$TARGET_DIR" -type d -mtime +45 -exec rm -rf {} \; >> "$LOG_FILE" 2>&1 # Remove arquivos .zip com mais de 45 dias find "$TARGET_DIR" -type f -name "*.zip" -mtime +45 -exec rm -f {} \; >> "$LOG_FILE" 2>&1 # Verifica se o comando foi bem-sucedido if [ $? -eq 0 ]; then echo "[$DATA_ATUAL] Limpeza concluída com sucesso." >> "$LOG_FILE" else echo "[$DATA_ATUAL] ERRO: Falha durante a limpeza." >> "$LOG_FILE" fi echo "========================================" >> "$LOG_FILE" # Opcional: exibe mensagem no console echo "Limpeza concluída. Verifique o log em $LOG_FILE"