Autor: Ricardo Andres Bonilla Prada
Fecha: 2024-12-10
EcoClean es una herramienta en Bash que permite limpiar archivos temporales, detectar y eliminar duplicados, ofrecer una interfaz interactiva, gestionar configuraciones externas y registrar las acciones realizadas. Está orientada al uso personal y tiene potencial para ser comercializada en el futuro, ofreciendo una solución confiable y personalizable de limpieza de sistemas.
-
Sprint 1:
- Eliminar archivos temporales con extensiones
.tmp,.logy.bak.
- Eliminar archivos temporales con extensiones
-
Sprint 2:
- Detectar archivos duplicados (por hash MD5) y eliminar todos menos uno.
-
Sprint 3:
- Interfaz interactiva en terminal con menús, confirmaciones y reportes previos.
-
Sprint 4:
- Uso de un archivo de configuración externo (
ecoclean.conf) para definir rutas y extensiones a limpiar, facilitando la personalización sin modificar el código.
- Uso de un archivo de configuración externo (
-
Sprint 5:
- Sistema de logging detallado con fecha y hora, registrando cuántos archivos se eliminaron y el espacio total liberado.
- Sistema Operativo:
- Probado en macOS con Bash 4+ (instalable vía Homebrew).
- Debería funcionar también en Linux con
md5sumdisponible.
- Herramientas Necesarias:
- Bash 4.0 o superior (en macOS, la versión por defecto es 3.2, por lo que se recomienda instalar Bash más reciente con
brew install bashy ajustar el#!/opt/homebrew/bin/bashsegún la ruta). - Comandos estándar:
find,stat,md5,md5sum,awk. - Opcional:
dialogowhiptailsi se quieren interfaces más complejas (no requerido en esta versión).
- Bash 4.0 o superior (en macOS, la versión por defecto es 3.2, por lo que se recomienda instalar Bash más reciente con
-
Clonar el repositorio:
git clone https://github.com/RikardoBonilla/ecoclean.git cd ecoclean -
Dar permisos de ejecución al script:
chmod +x ecoclean.sh
-
Archivo de configuración (
ecoclean.conf):
Edite el archivoecoclean.conf(si no existe, créelo) para personalizar las extensiones y directorios:# ecoclean.conf TEMP_EXTENSIONS="*.tmp *.log *.bak" CLEAN_DIRS="/Users/ricardo/Documents/ProjectsToIA/Bash/ecoclean /tmp" LOG_FILE="$(dirname "$0")/logs/ecoclean.log"
TEMP_EXTENSIONS: Lista de extensiones separadas por espacio.CLEAN_DIRS: Lista de directorios separados por espacio donde se buscarán archivos temporales.
Si no existe el archivo
ecoclean.conf, el script usará extensiones y directorio actual por defecto. -
Directorio de logs: Asegúrate de tener el directorio
logscreado:mkdir -p logs
El archivo
ecoclean.logse generará automáticamente con las acciones realizadas.
Ejecuta:
./ecoclean.sh o tambien puede ser :
/usr/local/bin/bash ./ecoclean.sh Aparecerá un menú interactivo con las siguientes opciones:
-
Mostrar archivos temporales:
Lista todos los archivos encontrados según las extensiones y rutas definidas en la configuración. -
Detectar y eliminar duplicados:
Muestra qué archivos tienen duplicados y pregunta si deseas continuar con la eliminación.
Tras confirmar, elimina los duplicados y conserva uno solo, registrando la acción en el log. -
Eliminar todos los archivos temporales:
Muestra todos los archivos temporales y pregunta si deseas eliminarlos.
Tras confirmar, elimina todos y registra la acción en el log, mostrando cuántos archivos se eliminaron y cuántos bytes se liberaron. -
Salir:
Cierra el menú interactivo.
-
Crea archivos temporales:
touch test1.tmp test2.log test3.bak echo "Contenido de prueba" > test1.tmp cp test1.tmp test2.log cp test1.tmp test3.bak
-
Ejecuta EcoClean:
./ecoclean.sh
- Opción 1: Verás los 3 archivos.
- Opción 2: Detectará que hay duplicados. Presiona
spara confirmar. Se eliminarán los duplicados dejando uno solo. - Opción 1 nuevamente: Ahora hay menos archivos.
- Opción 3: Elimina todos los archivos restantes. Presiona
spara confirmar.
-
Verifica el log:
cat logs/ecoclean.log
Encontrarás entradas con fecha, hora, cantidad de archivos eliminados y bytes liberados.
- Bash: Probado con Bash 5.1 (instalado vía Homebrew en macOS).
- Herramientas del sistema: Versión estándar del
find,stat,md5/md5sumen macOS y Linux. - Compatibilidad:
- macOS: Se requiere ajustar el
#!/opt/homebrew/bin/basha la ruta real de Bash 4+ - Linux: Debería funcionar usando
md5sumen vez demd5.
- macOS: Se requiere ajustar el
-
Soporte para múltiples perfiles de configuración:
Permitir distintos archivos de configuración (ecoclean_work.conf,ecoclean_home.conf) y cargar uno u otro al inicio con un parámetro. -
Notificaciones avanzadas:
Enviar alertas por correo o notificaciones del sistema cuando se realice una limpieza grande o se encuentren muchos duplicados. -
Interfaz gráfica:
Integrar con herramientas comodialogowhiptailpara ofrecer un menú más rico visualmente. -
Soporte multiplataforma más robusto:
Detección automática de entorno (macOS, Linux, WSL) y ajustar comandos (md5vsmd5sum,statvsdu). -
Registro ampliado:
Guardar detalles como el nombre de cada archivo eliminado, su extensión, y mantener un historial rotativo del log para no crecer indefinidamente.
Este proyecto se puede adaptar o distribuir libremente (añadir la licencia que prefieras, por ejemplo MIT o GPL).