docs: armonización masiva de bitácoras, categorización de nodos y diagnóstico srv-dasu
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# ==========================================================
|
||||
# FILE: core/globals.rb
|
||||
# ==========================================================
|
||||
|
||||
# --- CONSTANTES GLOBALES DEL SCRIPT ---
|
||||
APP_NOM_BASE = 'dtic-BKPs'
|
||||
APP_NOM = "#{APP_NOM_BASE}_app.rb"
|
||||
APP_VER = 'v5.5.1' # Actualizado
|
||||
APP_AUTOR = "Ricardo MONLA ( rmonla@ )"
|
||||
APP_DIR_SCRIPT = File.dirname(File.expand_path(__FILE__))
|
||||
APP_CFG_NOM_ARCHIVO = "#{APP_NOM_BASE}_tasks.rb"
|
||||
APP_LOG_NOM_ARCHIVO = "../logs/#{APP_NOM_BASE}.log"
|
||||
APP_CFG_RUTA_ARCHIVO = File.join(APP_DIR_SCRIPT, APP_CFG_NOM_ARCHIVO)
|
||||
APP_LOG_RUTA_ARCHIVO = File.join(APP_DIR_SCRIPT, APP_LOG_NOM_ARCHIVO)
|
||||
|
||||
# --- COLORES E ICONOS GLOBALES ---
|
||||
RESET = "\e[0m"; NEGRITA = "\e[1m"; SUBRAYADO="\e[4m"; INTERMITENTE = "\e[5m"
|
||||
CIAN = "\e[96m"; AMARILLO = "\e[93m"; ROJO = "\e[91m"; VERDE = "\e[92m"
|
||||
ICONO_OK = "#{VERDE}✔#{RESET}"; ICONO_ERROR = "#{ROJO}✖#{RESET}"; ICONO_WARN = "#{AMARILLO}⚠#{RESET}"; ICONO_INFO = "#{CIAN}ℹ#{RESET}"
|
||||
|
||||
# --- CONFIGURACIÓN GLOBAL ---
|
||||
|
||||
# Bloque para configurar el logger directamente aquí
|
||||
require 'logger' # Asegúrate de que Logger esté cargado
|
||||
$logger = Logger.new(APP_LOG_RUTA_ARCHIVO, 'daily')
|
||||
$logger.level = Logger::INFO # Puedes ajustar el nivel de log aquí
|
||||
$logger.formatter = proc do |severity, datetime, progname, msg|
|
||||
"[#{datetime.strftime('%Y-%m-%d %H:%M:%S')}] [#{severity}] #{msg}\n"
|
||||
end
|
||||
|
||||
$estadisticas_ejecucion = { tareas_completadas: {} }
|
||||
|
||||
# --- FUNCIÓN DE LOGGING GLOBAL ---
|
||||
def log(nivel, mensaje)
|
||||
# Usa esta expresión regular más robusta para eliminar códigos ANSI
|
||||
msg_l = mensaje.gsub(/\e\[(?:\d{1,3}(?:;\d{1,3})*)?[m|K]/, '')
|
||||
case nivel
|
||||
when :info then $logger.info(msg_l)
|
||||
when :error then $logger.error(msg_l)
|
||||
when :warn then $logger.warn(msg_l)
|
||||
else $logger.debug(msg_l)
|
||||
end
|
||||
end
|
||||
|
||||
# Función auxiliar para verificar si un comando existe
|
||||
def which(cmd)
|
||||
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
|
||||
ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
|
||||
exts.each { |ext|
|
||||
exe = File.join(path, "#{cmd}#{ext}")
|
||||
return exe if File.executable?(exe) && !File.directory?(exe)
|
||||
}
|
||||
end
|
||||
nil
|
||||
end
|
||||
Executable
+74
@@ -0,0 +1,74 @@
|
||||
#!/bin/bash
|
||||
# ==========================================================
|
||||
# dtic-BKPs - Automatic Backup Processor
|
||||
# ----------------------------------------------------------
|
||||
# APP: dtic-BKPs
|
||||
# FILE: install.sh
|
||||
# VERSION: v5.5.0 (of the main app)
|
||||
# AUTHOR: Ricardo MONLA (rmonla@)
|
||||
# LICENSE: MIT License
|
||||
# ==========================================================
|
||||
|
||||
# --- Colores para la salida ---
|
||||
CIAN='\033[0;96m'
|
||||
AMARILLO='\033[0;93m'
|
||||
VERDE='\033[0;92m'
|
||||
ROJO='\033[0;91m'
|
||||
NEGRITA='\033[1m'
|
||||
NC='\033[0m' # Sin color
|
||||
|
||||
# --- Iconos ---
|
||||
ICONO_OK="${VERDE}✔${NC}"
|
||||
ICONO_ERROR="${ROJO}✖${NC}"
|
||||
ICONO_INFO="${CIAN}ℹ${NC}"
|
||||
ICONO_WARN="${AMARILLO}⚠${NC}"
|
||||
|
||||
echo -e "${NEGRITA}${CIAN}--- Instalador de dtic-BKPs ---${NC}"
|
||||
|
||||
# 1. VERIFICAR SI RUBY ESTÁ INSTALADO
|
||||
echo -e "\n${ICONO_INFO} Verificando si Ruby está instalado..."
|
||||
|
||||
if command -v ruby > /dev/null 2>&1
|
||||
then
|
||||
# Ruby ya está instalado
|
||||
RUBY_VERSION=$(ruby -v)
|
||||
echo -e "${ICONO_OK} Ruby ya está instalado: ${AMARILLO}${RUBY_VERSION}${NC}"
|
||||
else
|
||||
# Ruby no está instalado
|
||||
echo -e "${ICONO_WARN} Ruby no se encuentra en el sistema."
|
||||
|
||||
# Manera compatible con 'sh' para pedir entrada
|
||||
echo -n -e "${AMARILLO}¿Deseas instalar Ruby (a través de 'sudo apt install ruby-full')? (S/N): ${NC}"
|
||||
read respuesta
|
||||
|
||||
# Usamos 'case' en lugar de 'if [[ ... =~ ... ]]' para máxima compatibilidad
|
||||
case "$respuesta" in
|
||||
[Ss] | [Ss][Ii]) # Acepta S, s, Si, si
|
||||
echo -e "\n${ICONO_INFO} Se necesita contraseña de administrador para instalar paquetes."
|
||||
echo -e "${ICONO_INFO} Actualizando lista de paquetes (sudo apt-get update)..."
|
||||
sudo apt-get update
|
||||
|
||||
echo -e "${ICONO_INFO} Instalando ruby-full..."
|
||||
sudo apt-get install -y ruby-full
|
||||
|
||||
if ! command -v ruby > /dev/null 2>&1
|
||||
then
|
||||
echo -e "\n${ICONO_ERROR} La instalación de Ruby falló. Por favor, instálalo manualmente y vuelve a ejecutar este script."
|
||||
exit 1
|
||||
fi
|
||||
echo -e "\n${ICONO_OK} Ruby instalado correctamente."
|
||||
;;
|
||||
*)
|
||||
echo -e "\n${ICONO_ERROR} Instalación cancelada. Ruby es necesario para continuar."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# 2. EJECUTAR EL SCRIPT DE INSTALACIÓN DE RUBY
|
||||
echo -e "\n${ICONO_INFO} Lanzando el instalador de la aplicación (dtic-BKPs_install.rb)..."
|
||||
echo -e "${CIAN}--------------------------------------------------${NC}"
|
||||
|
||||
ruby ./dtic-BKPs_install.rb
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user