- Añadir campos al modelo MonitoredApp: * service_name: Nombre del servicio systemd * path: WorkingDirectory de la aplicación * entry_point: Archivo de entrada (server.js, app.js, etc.) * node_bin: Ruta completa al binario de node/python * mode: Modo de ejecución (production, development, test) * service_file_path: Ruta al archivo .service de systemd * registered_at: Timestamp de registro (ISO 8601) - Actualizar discovery.rs para extraer toda la información: * Parsear ExecStart para obtener node_bin y entry_point * Extraer NODE_ENV para determinar el modo * Guardar ruta completa al archivo .service * Usar add_app_full() con información completa - Integrar ConfigManager en AppManager: * Guardar automáticamente en monitored_apps.json al registrar apps * Eliminar del JSON al desregistrar apps * Extraer metadata desde ServiceConfig (puerto, entry_point, mode, etc.) - Mantener retrocompatibilidad con JSON antiguo mediante campos deprecated - Todos los nuevos campos usan #[serde(default)] para evitar errores de deserialización
52 lines
1.3 KiB
Bash
Executable File
52 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# --- CONFIGURACIÓN ---
|
|
BINARY_NAME="siax_monitor"
|
|
TARGET="x86_64-unknown-linux-gnu"
|
|
LOCAL_PATH="target/$TARGET/release/$BINARY_NAME"
|
|
|
|
# 1. Preguntar método de transferencia
|
|
echo "Selecciona el método de transferencia:"
|
|
select METODO in "scp" "rsync"; do
|
|
case $METODO in
|
|
scp|rsync) break ;;
|
|
*) echo "Opción inválida, elige 1 o 2." ;;
|
|
esac
|
|
done
|
|
|
|
# 2. Compilar
|
|
echo "📦 Compilando..."
|
|
cargo build --release --target $TARGET
|
|
if [ $? -ne 0 ]; then echo "❌ Error en compilación"; exit 1; fi
|
|
|
|
# --- FUNCIÓN DE SUBIDA ---
|
|
upload_file() {
|
|
local IP=$1
|
|
local USER=$2
|
|
local DEST=$3
|
|
|
|
echo "🚀 Subiendo a $USER@$IP vía $METODO..."
|
|
|
|
if [ "$METODO" = "scp" ]; then
|
|
scp "$LOCAL_PATH" "$USER@$IP:$DEST/"
|
|
else
|
|
# rsync -avz: a (archivo/permisos), v (visual), z (comprimido)
|
|
rsync -avz "$LOCAL_PATH" "$USER@$IP:$DEST/"
|
|
fi
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ $IP: Completado."
|
|
else
|
|
echo "❌ $IP: Falló la subida."
|
|
fi
|
|
}
|
|
|
|
# --- LISTA DE SERVIDORES ---
|
|
# Formato: upload_file "IP" "USUARIO" "RUTA_DESTINO"
|
|
upload_file "192.168.10.145" "root" "/root/app"
|
|
upload_file "192.168.10.150" "pablinux" "/home/pablinux/app"
|
|
upload_file "192.168.10.160" "user_apps" "/home/user_apps/apps"
|
|
|
|
echo "------------------------------------------------"
|
|
echo "Done!"
|