AnalisiServer

Da GazziNet.
Vai alla navigazione Vai alla ricerca

Generare un file server.csv:

hostname,ip
postgreslab01,192.168.1.220

Verrà usato l'ip per la connessione e il nome per il file di output nella sotto directory: output


Creare un file con lo script del collegamento ai server mediante certificati e rileva le informazioni:

vi check_server_info.sh

#!/bin/bash
SERVER_LIST="server.csv"
SSH_USER="root"
SSH_KEY="$HOME/.ssh/id_rsa"  # Cambia se usi una chiave diversa
OUTPUT_DIR="output"
mkdir -p "$OUTPUT_DIR"  
while IFS=',' read -r name ip; do
    # Salta intestazione o righe vuote
    | -z "$ip"  && continue 
   # Pulisci spazi bianchi 
   name=$(echo "$name" | xargs)
   ip=$(echo "$ip" | xargs)
   echo "Controllo connessione a $name ($ip)..."
   # Test connessione SSH con timeout breve
   ssh -i "$SSH_KEY" -o BatchMode=yes -o ConnectTimeout=5 -o StrictHostKeyChecking=no "$SSH_USER@$ip" 'exit' 2>/dev/null
   if [ $? -ne 0 ]; then
       echo "❌ Connessione fallita a $ip ($name), salto."
       continue
   fi
   echo "✅ Connessione riuscita a $ip ($name). Raccolgo informazioni..."
   OUTPUT_FILE="${OUTPUT_DIR}/${name}.txt"
   echo "=== Informazioni per $name ($ip) ===" > "$OUTPUT_FILE"
   ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no "$SSH_USER@$ip" bash << 'EOF' >> "$OUTPUT_FILE"
echo -e "\n--- CPU Info ---"
lscpu | grep 'Model name'
echo -e "\n--- RAM Totale ---"
free -h | grep Mem
echo -e "\n--- SWAP ---"
free -h | grep Swap
echo -e "\n--- Sistema Operativo ---"
cat /etc/os-release | grep PRETTY_NAME
echo -e "\n--- Ultima Patch Installata ---"
if command -v rpm &>/dev/null; then
   rpm -qa --last | head -n 1
elif command -v dpkg &>/dev/null; then
   ls -lt /var/lib/dpkg/info/ | head -n 1
else
   echo "Gestore pacchetti non riconosciuto"
fi
echo -e "\n--- Ultimo Riavvio ---"
who -b
echo -e "\n--- Elenco Dischi ---"
lsblk
echo -e "\n--- Top 5 Processi per Uso CPU ---"
ps -eo pid,comm,%cpu --sort=-%cpu | head -n 6
echo -e "\n--- Top 5 Processi per Uso RAM ---"
ps -eo pid,comm,%mem --sort=-%mem | head -n 6
EOF
   echo "📄 File ${OUTPUT_FILE} creato."
done < "$SERVER_LIST"