Files
dtic-DIIAA/tools/dtic-BKPs/PROYECT_dtic-BKPs.md
T

14 KiB

Documentación del Proyecto dtic-BKPs

Resumen del Proyecto

Nombre del Proyecto: dtic-BKPs Versión: v5.5.1 Autor: Lic. Ricardo MONLA (rmonla@) Organización: Dirección de TIC, Facultad Regional La Rioja, Universidad Tecnológica Nacional
Licencia: MIT License

Propósito y Descripción

dtic-BKPs es un procesador automatizado de respaldos escrito en Ruby, diseñado para manejar el procesamiento, compresión y sincronización de respaldos de máquinas virtuales desde diversas plataformas de virtualización. El sistema proporciona un menú interactivo basado en terminal para gestionar operaciones de respaldo en entornos XenServer/XCP-ng y Proxmox VE.

La aplicación automatiza el flujo de trabajo de descarga de respaldos desde servidores remotos, procesándolos (compresión, organización) y subiéndolos a almacenamiento en la nube u otros destinos utilizando rclone para sincronización universal de archivos.

Características Principales

  • Interfaz de Terminal Interactiva: Sistema basado en menús para ejecutar tareas de respaldo
  • Soporte Multiplataforma: Procesamiento nativo para XenServer/XCP-ng (archivos .xva) y respaldos de Proxmox VE
  • Sincronización Universal: Integración con rclone para sincronizar a cualquier destino local o remoto
  • Arquitectura Modular: Estructura de código organizada con procesadores separados para diferentes tipos de respaldo
  • Tareas Configurables: Definiciones de tareas editables a través de la interfaz de la aplicación
  • Logging Integral: Logging detallado con retroalimentación visual e indicadores de progreso
  • Secuencias de Comandos: Soporte para flujos de trabajo de respaldo de múltiples pasos

Estructura del Proyecto

Diseño de Directorios

dtic-BKPs/
├── _vStable/                    # Directorio de versión estable
│   ├── dtic-BKPs_app.rb         # Script principal de la aplicación
│   ├── dtic-BKPs_tasks.rb       # Archivo de configuración de tareas
│   ├── runDticBKPs.sh          # Script de ejecución
│   ├── README.md               # Documentación del proyecto
│   ├── LICENSE                 # Licencia MIT
│   ├── logs/                   # Directorio de archivos de log
│   │   └── dtic-BKPs.log        # Log principal de la aplicación
│   ├── fxs/                    # Módulos de funciones
│   │   ├── config_handler.rb   # Gestión de configuración
│   │   ├── ui_handlers.rb      # Manejadores de interfaz de usuario
│   │   ├── proc_syncPmox.rb    # Procesador de respaldos Proxmox
│   │   ├── proc_syncXEN.rb     # Procesador de respaldos Xen
│   │   └── sync_rclone.rb      # Sincronización rclone
│   └── src/                    # Código fuente y documentación
│       ├── install.sh          # Script de instalación
│       ├── project__v5.5.0_*.md  # Documentación del proyecto
│       └── core/               # Módulos principales
│           └── globals.rb      # Constantes globales y utilidades
├── _vStable/                   # Versiones estables anteriores
└── _basurero/                  # Directorio de archivos

Componentes Principales

Aplicación Principal (dtic-BKPs_app.rb)

  • Punto de entrada del procesador de respaldos
  • Sistema de menú interactivo
  • Motor de ejecución de tareas
  • Carga y gestión de configuración

Configuración de Tareas (dtic-BKPs_tasks.rb)

  • Define tareas individuales de respaldo
  • Contiene secuencias de comandos (flujos de trabajo de múltiples pasos)
  • Parámetros configurables para cada tipo de tarea

Módulos de Funciones (fxs/)

  • config_handler.rb: Carga y guarda configuraciones de tareas
  • ui_handlers.rb: Gestiona interfaz de usuario e interacciones de menú
  • proc_syncPmox.rb: Procesa conjuntos de respaldos de Proxmox VE
  • proc_syncXEN.rb: Procesa archivos .xva de XenServer/XCP-ng
  • sync_rclone.rb: Maneja operaciones de sincronización rclone

Stack Tecnológico

Tecnologías Principales

Componente Tecnología Versión Propósito
Lenguaje de Programación Ruby 2.7+ Lógica principal de la aplicación
Sincronización rclone Última Transferencia universal de archivos
Compresión tar/gzip Sistema Compresión de respaldos
Monitoreo de Progreso pv Opcional Visualización de progreso
Logging Ruby Logger Integrado Logging de la aplicación

Dependencias

Dependencias Requeridas

  • Ruby 2.7+: Entorno de ejecución principal
  • rclone: Herramienta universal de sincronización de archivos
  • tar y gzip: Utilidades de compresión (generalmente preinstaladas en Linux)

Dependencias Opcionales

  • pv (Pipe Viewer): Proporciona barras de progreso durante operaciones de compresión

Requisitos del Sistema

  • Sistema Operativo: Linux (Debian/Ubuntu recomendado)
  • Permisos: Acceso a directorios de origen y destino de respaldos
  • Red: Conectividad a orígenes remotos de respaldos (si aplica)
  • Almacenamiento: Espacio suficiente para procesamiento de respaldos y archivos temporales

Funcionalidades

Tipos de Procesamiento de Respaldos

1. Procesamiento XenServer/XCP-ng (:xva)

  • Entrada: Archivos de respaldo de máquinas virtuales .xva
  • Proceso: Comprime archivos .xva individuales en archivos .tar.gz
  • Organización: Agrupa respaldos por nombre de máquina virtual
  • Salida: Archivos comprimidos en estructura de directorios de destino

2. Procesamiento Proxmox VE (:proxmox_log_notes)

  • Entrada: Conjuntos de respaldos de Proxmox (archivos .log, .notes y datos)
  • Proceso: Lee archivo .notes para nombre de MV, comprime conjunto completo de respaldo
  • Organización: Crea archivos con timestamp por máquina virtual
  • Salida: Archivos .tar.gz consolidados con nomenclatura apropiada

3. Sincronización Universal (:rclone_sync)

  • Entrada: Cualquier directorio local o remoto
  • Proceso: Utiliza rclone para sincronizar archivos entre ubicaciones
  • Destinos: Rutas locales, almacenamiento en nube, servidores remotos
  • Características: Sincronización incremental, reporte de progreso, manejo de errores

Gestión de Tareas

Tareas Individuales

Cada tarea define:

  • ID Único: Identificador simbólico para la tarea
  • Texto de Visualización: Descripción amigable para el usuario
  • Tipo de Proceso: :xva, :proxmox_log_notes, o :rclone_sync
  • Ruta de Origen: Directorio origen (local o remoto rclone)
  • Ruta de Destino: Directorio destino (local o remoto rclone)
  • Opciones: Eliminar origen después del procesamiento, sobrescribir destino

Secuencias de Comandos

Flujos de trabajo de múltiples pasos que ejecutan múltiples tareas en orden:

  • Descargar y Procesar: Sincronizar desde remoto, luego procesar respaldos
  • Ciclo Completo de Respaldo: Descargar → Procesar → Subir a nube
  • Operaciones Masivas: Procesar múltiples orígenes de respaldos

Interfaz de Usuario

Menú Principal

  • Tareas Individuales: Ejecutar operaciones de respaldo únicas
  • Secuencias de Comandos: Ejecutar flujos de trabajo de respaldo de múltiples pasos
  • Editor de Tareas: Modificar tareas existentes o crear nuevas
  • Salir: Cierre limpio de la aplicación

Modo Editor de Tareas

  • Editar Tareas: Modificar parámetros de tareas existentes
  • Crear Tareas: Agregar nuevas operaciones de respaldo
  • Eliminar Tareas: Remover tareas no utilizadas
  • Guardar Cambios: Persistir modificaciones en archivo de configuración

Sistema de Configuración

Archivo de Configuración de Tareas

  • Formato: Array Ruby de hashes de tareas
  • Ubicación: dtic-BKPs_tasks.rb
  • Editable: A través de interfaz de aplicación o manualmente
  • Auto-generado: Comentarios y formato preservados

Configuración de Runtime

  • Avance Automático: Opción para proceder automáticamente a través de tareas
  • Nivel de Logging: Verbose configurable
  • Salida en Color: Retroalimentación visual con colores ANSI

Instalación y Configuración

Proceso de Instalación

  1. Descarga: Obtener todos los archivos del proyecto
  2. Permisos: Hacer ejecutable el script de instalación
    chmod +x install.sh
    
  3. Ejecutar Instalador: Ejecutar el script de instalación
    ./install.sh
    
  4. Verificación de Dependencias: El script verifica instalación de Ruby y rclone
  5. Configuración: Genera configuración inicial de tareas

Configuración de Tareas

Ejemplos de Configuración de Tareas

Procesamiento de Respaldo Xen:

{
  id: :proc_syncXen1,
  menu_texto: "Procesar respaldos de MV Xen01",
  tipo_proceso: :xva,
  origen: "/mnt/respaldos/xen01/",
  destino: "/mnt/procesados/xen01/",
  eliminar_origen: true,
  sobrescribir_destino: false,
}

Procesamiento de Respaldo Proxmox:

{
  id: :proc_syncPmox,
  menu_texto: "Procesar respaldos Proxmox",
  tipo_proceso: :proxmox_log_notes,
  origen: "servidor_pve:/var/lib/vz/dump/",
  destino: "/mnt/procesados/proxmox/",
  eliminar_origen: false,
  sobrescribir_destino: false,
}

Subida a Nube:

{
  id: :subir_nube,
  menu_texto: "Subir a almacenamiento en nube",
  tipo_proceso: :rclone_sync,
  origen: "/mnt/procesados/",
  destino: "proveedor_nube:/respaldos/",
  eliminar_origen: false,
  sobrescribir_destino: false,
}

Guía de Uso

Operación Básica

  1. Iniciar Aplicación:

    ./dtic-BKPs_app.rb
    
  2. Seleccionar Operación:

    • Ingresar número de tarea para ejecución individual
    • Ingresar número de comando para ejecución de secuencia
    • Presionar 'E' para modo de edición de tareas
  3. Monitorear Progreso:

    • Indicadores visuales de progreso
    • Actualizaciones de estado en tiempo real
    • Logging detallado a archivo

Características Avanzadas

Secuencias de Comandos

Ejecutar flujos de trabajo complejos de respaldo:

  • C1: Descargar y procesar respaldos Proxmox
  • C2: Ciclo completo (descargar → procesar → subir)
  • C3: Sincronización masiva a nube

Personalización de Tareas

Modificar tareas a través del editor:

  • Cambiar rutas de origen/destino
  • Ajustar opciones de procesamiento
  • Agregar nuevos orígenes de respaldo
  • Crear secuencias de comandos personalizadas

Logging y Monitoreo

Archivos de Log

  • Log Principal: logs/dtic-BKPs.log
  • Formato: Timestamp, severidad, mensaje
  • Rotación: Rotación diaria con limpieza automática

Niveles de Log

  • INFO: Operaciones normales y completación
  • WARN: Problemas no críticos (archivos faltantes, etc.)
  • ERROR: Fallos críticos que requieren atención

Características de Monitoreo

  • Estadísticas de Ejecución: Seguimiento de tareas completadas y rendimiento
  • Indicadores de Progreso: Retroalimentación visual durante operaciones largas
  • Reportes de Error: Mensajes de error detallados con contexto
  • Rastro de Auditoría: Registro completo de todas las operaciones

Consideraciones de Seguridad

Control de Acceso

  • Permisos de Archivos: Acceso apropiado a directorios de respaldo
  • Acceso Remoto: Configuraciones remotas rclone seguras
  • Gestión de Credenciales: Almacenamiento seguro de credenciales de acceso

Protección de Datos

  • Encriptación: Usar almacenamiento remoto encriptado cuando sea posible
  • Integridad de Respaldos: Verificación de completitud de respaldos
  • Logging de Acceso: Rastro de auditoría de operaciones de respaldo

Mantenimiento y Solución de Problemas

Mantenimiento Regular

  • Rotación de Logs: Monitorear tamaños de archivos de log
  • Respaldo de Configuración: Preservar configuraciones de tareas
  • Actualizaciones de Dependencias: Mantener rclone y Ruby actualizados

Problemas Comunes

  • Dependencias Faltantes: Ejecutar script de instalación para verificar
  • Errores de Permisos: Verificar permisos de acceso a directorios
  • Problemas de Red: Verificar conectividad a orígenes remotos
  • Errores de Configuración: Validar definiciones de tareas

Optimización de Rendimiento

  • Procesamiento Paralelo: Considerar múltiples instancias para diferentes orígenes
  • Planificación de Almacenamiento: Asegurar espacio adecuado para procesamiento
  • Ancho de Banda de Red: Monitorear velocidades de transferencia para operaciones remotas

Desarrollo y Extensión

Arquitectura

  • Diseño Modular: Procesadores separados para diferentes tipos de respaldo
  • Configuración Dirigida: Definiciones de tareas en archivos externos
  • Extensible: Fácil adición de nuevos tipos de procesador

Agregar Nuevos Procesadores

  1. Crear nuevo módulo procesador en fxs/
  2. Agregar mapeo de procesador en aplicación principal
  3. Definir parámetros de configuración de tareas
  4. Actualizar documentación y ejemplos

Estándares de Código

  • Estilo Ruby: Seguir convenciones y mejores prácticas de Ruby
  • Documentación: Comentarios y documentación comprehensivos
  • Manejo de Errores: Manejo robusto de errores y logging
  • Testing: Testing manual de nuevas características

Soporte y Recursos

Documentación

  • README.md: Instalación y uso básico
  • Archivos del Proyecto: Documentación técnica detallada
  • Ejemplos de Configuración: Definiciones de tareas de ejemplo

Comunidad y Soporte

  • Autor: Lic. Ricardo MONLA (rmonla@)
  • Organización: Dirección de TIC, Universidad Tecnológica Nacional
  • Licencia: MIT License (código abierto)

Historial de Versiones

  • v4.4: Versión modular inicial con soporte Xen y Proxmox
  • v5.2: Sistema de configuración mejorado y editor de tareas
  • v5.5.0: Automatic execution via command-line parameters
  • v5.5.1 (2025-11-14): Fixed naming inconsistencies across the application to ensure correct app name references.

Esta documentación proporciona una visión comprehensiva del procesador automatizado de respaldos dtic-BKPs. Para detalles específicos de implementación, referirse al código fuente y archivos de configuración.