Descripción del proyecto
Ethereal surgió de la necesidad de tener una sola herramienta que centralice las tareas más frecuentes de administración de sistemas Linux, independientemente de la distribución. El objetivo: que un SysAdmin pueda aterrizar en cualquier servidor Debian, Ubuntu, RHEL o Arch y tener acceso inmediato a todas las operaciones que necesita sin memorizar comandos específicos de cada distro.
La interfaz de menú interactiva guía al usuario a través de 14 áreas funcionales, desde diagnóstico de hardware hasta gestión de bases de datos y exportación de informes en PDF/HTML. Todo el proyecto está escrito en Shell puro, sin dependencias externas más allá de las herramientas estándar de cada distribución.
La compatibilidad multi-distribución se resuelve con un sistema de detección de distro al inicio que adapta los comandos de instalación de paquetes, las rutas de configuración y los nombres de servicios.
14 Áreas funcionales
- Diagnóstico del sistema: hardware, CPU, memoria, disco y red en tiempo real
- Monitorización de rendimiento: CPU, RAM, disco y red con tracking histórico
- Seguridad & Hardening: configuración SSH, gestión de firewall (ufw/firewalld), auditoría
- Backup & Recovery: backups incrementales con compresión y cifrado opcional
- Gestión Docker: operaciones de contenedores e imágenes desde el menú
- Administración de bases de datos: MySQL, PostgreSQL y Redis desde interfaz unificada
- Análisis de logs: visualización y rotación de logs del sistema
- Gestión de usuarios: administración de cuentas y permisos
- Automatización: cron jobs y programación de tareas
- Reportes: exportación PDF/HTML del estado del sistema
- Integración de dominio: gestión de dominios y DNS
- Gestión de almacenamiento: LVM, particiones y sistemas de archivos
- Gestión de red: interfaces, routing y diagnóstico de conectividad
- Utilidades adicionales: herramientas de uso frecuente agrupadas
Instalación y uso
# Instalación rápida (una línea) curl -fsSL https://raw.githubusercontent.com/vvv-bash-v2/Ethereal/main/install.sh | sudo bash # Instalación manual git clone https://github.com/vvv-bash-v2/Ethereal cd Ethereal sudo chmod +x ethereal.sh sudo ./ethereal.sh # Detección automática de distribución al inicio: # ✓ Debian 11/12 # ✓ Ubuntu 20.04 / 22.04 / 24.04 LTS # ✓ RHEL 8/9 · CentOS Stream · Rocky · AlmaLinux # ✓ Fedora 38/39/40+ # ✓ Arch Linux (beta)
Retos y soluciones
- Compatibilidad multi-distro: Debian usa
apt, RHEL usadnf, Arch usapacmany los nombres de servicios difieren; implementado un sistema de abstracción con funciones wrapper que detectan la distro y ejecutan el comando correcto. - Shell puro sin dependencias: mantenerse en POSIX shell compatible con todas las distros mientras se implementan menús interactivos con colores y navegación; resuelto con secuencias de escape ANSI y
tput. - Backup atómico con cifrado: garantizar que un backup interrumpido no deje datos corruptos; implementado con archivos temporales y renombrado atómico al finalizar, más verificación de integridad por checksum.
- Gestión de permisos cross-distro: las rutas de sudo, wheel y sudoers difieren; detectado y adaptado por distribución con fallback a verificación manual de UID.
Aprendizajes
Ethereal me dio una comprensión sólida de las diferencias entre distribuciones Linux a nivel de gestión de paquetes, servicios (systemd vs OpenRC), rutas de configuración y convenciones del sistema. Aprender a abstraer esas diferencias en funciones shell reutilizables fue el mayor reto técnico del proyecto.
La experiencia de diseñar una CLI robusta — con gestión de errores, confirmaciones, colores y feedback claro — se tradujo directamente en mejores scripts de automatización en el homelab y en el trabajo.