#!/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!"