Hace un tiempo, mientras practicaba con scripts de Bash, me propuse resolver tareas pequeñas para afianzar conocimientos. Una de ellas era un script que eliminaba archivos temporales, volcados antiguos y carpetas node_modules de proyectos olvidados. Lo encontré por casualidad, lo probé en una máquina virtual y, aunque funcionaba, era un apaño inseguro y poco legible.
Se me ocurrió comprobar si un modelo como ChatGPT podía hacer lo mismo con un enfoque más profesional. El resultado fue revelador: la arquitectura propuesta fue sólida, pero también hubo sugerencias que, sin cuidado, podrían poner en riesgo el sistema. A continuación, cuento la experiencia y las lecciones aprendidas.
La tarea era sencilla en apariencia: localizar y eliminar archivos innecesarios siguiendo reglas claras. Mi script original era un monolito con múltiples llamadas a find y rm -rf, concatenaciones frágiles y una gestión de errores deficiente.
Principales problemas del primer intento: usar rm -rf con variables concatenadas es como jugar a la ruleta rusa; un espacio en la ruta bastaba para fallar o borrar lo que no debía. Cambiar las reglas exigía tocar el código en varios puntos. No había configuración centralizada ni un sistema de registros que indicara qué se borró o qué falló. Y para rematar, las redirecciones de errores al vacío ocultaban problemas de permisos.
Le pedí a ChatGPT un script seguro y configurable para buscar y eliminar temporales, cachés y registros antiguos, con una lista de carpetas prohibidas y logging.
La propuesta llegó en Python por una razón de peso: Bash no es ideal cuando la seguridad depende de escapes perfectos y de rezar para que ninguna variable esté vacía. Python permite controles explícitos, rutas tipadas y manejo robusto de errores.
Qué planteó la versión en Python: una configuración clara con una lista de objetivos, cada uno con ruta base, patrones y antigüedad máxima en días. Un bloque de directorios vetados que impide tocar rutas críticas como la raíz, el directorio personal o el de claves. Registro a archivo con niveles de información y error. Funciones que eliminan con métodos nativos como unlink para ficheros y rmdir para directorios vacíos. Y un recorrido por patrones con Path que calcula la edad de cada elemento con la marca temporal de modificación.
Dónde acertó: eliminó llamadas directas a rm -rf y usó métodos nativos más seguros. Añadió personalización real con una configuración editable sin tocar la lógica. Incorporó un log completo para auditar qué se borró y por qué. Y empleó pathlib para gestionar rutas de forma multiplataforma evitando concatenaciones frágiles.
Qué ajustaría: el uso de búsqueda recursiva con patrón comodín total en directorios de caché puede ser lento e innecesario. Sumar filtros de antigüedad mínima, límites de profundidad o exclusiones por subcarpetas reduce el impacto. La eliminación de carpetas solo si están vacías es prudente, pero insuficiente para casos como node_modules; conviene registrar explícitamente que se omiten directorios no vacíos o plantear una opción segura y opcional para borrado recursivo con confirmación o lista blanca estricta. También mejoraría los patrones con listas específicas por proveedor de caché en lugar de un comodín global.
Conclusión práctica: la IA transformó un script frágil en una utilidad casi de producción con configuración y trazabilidad. Aun así, el recorrido recursivo indiscriminado puede saturar I O y provocar bloqueos si no se acota. La moraleja es clara: la IA estructura y securiza muy bien, pero el criterio operativo sobre qué limpiar y cómo debe venir de quien conoce el entorno.
Guía de uso recomendada sin entrar en detalles de código: guarda el archivo como cleanup_agent.py, define una lista de objetivos con rutas de trabajo, patrones a limpiar y antigüedad en días, revisa la lista de directorios protegidos para evitar riesgos y ejecútalo con Python 3. Consulta el archivo de log en tu directorio personal para ver inicio, fin, elementos eliminados y errores de permisos. Utiliza privilegios elevados solo si realmente necesitas acceder a rutas protegidas y siempre tras verificar la configuración.
Buenas prácticas adicionales: realiza una ejecución en modo simulación que solo registre lo que borraría, limita la profundidad en directorios con millones de ficheros, añade exclusiones para caches críticos de navegadores o lenguajes, programa la limpieza con cron o systemd timers y versiona la configuración para auditar cambios. Si gestionas equipos o servidores, separa reglas por perfil y contempla listas blancas específicas por proyecto.
En Q2BSTUDIO ayudamos a empresas a convertir scripts caseros en soluciones robustas de automatización, observabilidad y gobierno del dato. Somos una empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, agentes IA y power bi, con experiencia en pipelines de limpieza, análisis de telemetría y despliegues seguros. Si buscas aplicar ia para empresas con agentes que tomen decisiones supervisadas y disparen limpiezas seguras, explora nuestros servicios de inteligencia artificial. Y si quieres orquestar tareas, programar limpiezas, integrar auditorías y reportes en tiempo real, te acompañamos en tu automatización de procesos.
Palabras clave que solemos abordar en este tipo de proyectos: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si necesitas asesoría para endurecer tus scripts de mantenimiento, crear políticas de limpieza seguras o integrarlas con dashboards de negocio, estaremos encantados de ayudarte.