netgescon-master/backup-conflitti/verify-vm-target.sh

120 lines
3.2 KiB
Bash
Executable File

#!/bin/bash
# 🔍 NETGESCON - VERIFICA PRE-MIGRAZIONE
# Creato: 19/07/2025 - Test connessione e preparazione
echo "🔍 === NETGESCON - VERIFICA PRE-MIGRAZIONE ==="
echo "📅 $(date '+%Y-%m-%d %H:%M:%S')"
echo ""
TARGET_SERVER="192.168.0.200"
TARGET_USER="michele"
echo "📋 Test connessione a VM target: $TARGET_USER@$TARGET_SERVER"
echo ""
# Test connessione base
echo "🌐 Test 1: Connessione SSH..."
if ssh -o ConnectTimeout=10 -o BatchMode=yes "$TARGET_USER@$TARGET_SERVER" "echo 'SSH OK'" 2>/dev/null; then
echo " ✅ SSH con chiavi funziona"
else
echo " ⚠️ SSH richiede password (normale)"
if ssh -o ConnectTimeout=10 "$TARGET_USER@$TARGET_SERVER" "echo 'SSH con password OK'"; then
echo " ✅ SSH con password funziona"
else
echo " ❌ SSH non funziona - verificare rete/credenziali"
exit 1
fi
fi
# Test sistema target
echo ""
echo "📊 Test 2: Informazioni sistema target..."
ssh "$TARGET_USER@$TARGET_SERVER" << 'EOF'
echo " Sistema: $(lsb_release -d 2>/dev/null | cut -f2 || uname -s)"
echo " Kernel: $(uname -r)"
echo " Architettura: $(uname -m)"
echo " Uptime: $(uptime | cut -d',' -f1)"
echo " Spazio root: $(df -h / | tail -1 | awk '{print $4}') liberi"
echo " RAM libera: $(free -h | grep Mem | awk '{print $7}')"
echo " Utente: $(whoami)"
echo " Home: $HOME"
EOF
# Test permessi sudo
echo ""
echo "🔐 Test 3: Permessi sudo..."
if ssh "$TARGET_USER@$TARGET_SERVER" "sudo -n true" 2>/dev/null; then
echo " ✅ Sudo senza password configurato"
else
echo " ⚠️ Sudo richiede password (normale per sicurezza)"
fi
# Test dipendenze base
echo ""
echo "📦 Test 4: Dipendenze presenti..."
ssh "$TARGET_USER@$TARGET_SERVER" << 'EOF'
echo -n " Git: "
if command -v git &> /dev/null; then
echo "✅ $(git --version | cut -d' ' -f3)"
else
echo "❌ Non installato"
fi
echo -n " Curl: "
if command -v curl &> /dev/null; then
echo "✅ Presente"
else
echo "❌ Non installato"
fi
echo -n " Docker: "
if command -v docker &> /dev/null; then
echo "✅ $(docker --version | cut -d' ' -f3 | tr -d ',')"
else
echo "❌ Non installato"
fi
echo -n " Apache: "
if command -v apache2 &> /dev/null; then
echo "✅ $(apache2 -v | head -1 | cut -d' ' -f3)"
else
echo "❌ Non installato"
fi
echo -n " PHP: "
if command -v php &> /dev/null; then
echo "✅ $(php --version | head -1 | cut -d' ' -f2)"
else
echo "❌ Non installato"
fi
EOF
# Test porte disponibili
echo ""
echo "🌐 Test 5: Porte disponibili..."
ssh "$TARGET_USER@$TARGET_SERVER" << 'EOF'
echo " Porte in ascolto:"
ss -tlnp | grep -E ":(80|3000|3306|22)" | while read line; do
port=$(echo $line | awk '{print $4}' | cut -d':' -f2)
echo " - Porta $port: occupata"
done
# Test porte libere importanti
for port in 80 3000 3306; do
if ! ss -tln | grep -q ":$port "; then
echo " - Porta $port: ✅ libera"
fi
done
EOF
echo ""
echo "📊 === RIEPILOGO VERIFICA ==="
echo "✅ Connessione SSH verificata"
echo "✅ Sistema target accessibile"
echo "✅ Informazioni raccolte"
echo ""
echo "📋 Pronto per migrazione!"
echo " Eseguire: ./docs/03-scripts-automazione/migrate-to-vm-master.sh"
echo ""