61 lines
2.1 KiB
Bash
61 lines
2.1 KiB
Bash
#!/bin/bash
|
|
|
|
echo "Iniciando limpieza completa de archivos media huérfanos..."
|
|
|
|
# Función para ejecutar limpieza
|
|
cleanup_batch() {
|
|
echo "Ejecutando limpieza de lote..."
|
|
docker exec -it EFC_backend_dev bash -c "cd /app && python manage.py cleanup_media_fast --quick-scan --verbose" 2>/dev/null
|
|
return $?
|
|
}
|
|
|
|
# Contador de iteraciones
|
|
iteration=1
|
|
total_cleaned=0
|
|
|
|
while true; do
|
|
echo "=== Iteración $iteration ==="
|
|
|
|
# Ejecutar dry-run para ver si hay archivos huérfanos
|
|
result=$(docker exec -it EFC_backend_dev bash -c "cd /app && python manage.py cleanup_media_fast --quick-scan --dry-run" 2>/dev/null)
|
|
|
|
# Extraer número de archivos huérfanos
|
|
orphaned_count=$(echo "$result" | grep -o "Archivos huérfanos encontrados: [0-9]*" | grep -o "[0-9]*")
|
|
|
|
if [ -z "$orphaned_count" ] || [ "$orphaned_count" -eq 0 ]; then
|
|
echo "✅ No se encontraron más archivos huérfanos."
|
|
echo "🎉 Limpieza completa finalizada después de $iteration iteraciones."
|
|
echo "📊 Total estimado de archivos eliminados: $total_cleaned"
|
|
break
|
|
fi
|
|
|
|
echo "📁 Encontrados $orphaned_count archivos huérfanos en esta iteración"
|
|
|
|
# Preguntar confirmación en la primera iteración
|
|
if [ $iteration -eq 1 ]; then
|
|
echo "¿Continuar con la limpieza automática? (s/N):"
|
|
read -r response
|
|
if [[ ! "$response" =~ ^[sS]([iI]|í)?$ ]]; then
|
|
echo "❌ Limpieza cancelada por el usuario."
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
# Ejecutar limpieza
|
|
cleanup_result=$(docker exec -it EFC_backend_dev bash -c "cd /app && echo 's' | python manage.py cleanup_media_fast --quick-scan --verbose" 2>/dev/null)
|
|
|
|
# Extraer archivos eliminados
|
|
deleted_count=$(echo "$cleanup_result" | grep -o "Eliminados [0-9]* archivos" | grep -o "[0-9]*")
|
|
|
|
if [ -n "$deleted_count" ]; then
|
|
total_cleaned=$((total_cleaned + deleted_count))
|
|
echo "✅ Eliminados $deleted_count archivos en esta iteración"
|
|
fi
|
|
|
|
iteration=$((iteration + 1))
|
|
|
|
# Pausa pequeña para evitar sobrecarga
|
|
sleep 2
|
|
done
|
|
|
|
echo "🏁 Proceso completado exitosamente." |