AnalisiServer: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
(Creata pagina con "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" w...") |
Nessun oggetto della modifica |
||
Riga 18: | Riga 18: | ||
OUTPUT_DIR="output" | OUTPUT_DIR="output" | ||
mkdir -p "$OUTPUT_DIR" | mkdir -p "$OUTPUT_DIR" | ||
while IFS=',' read -r name ip; do | while IFS=',' read -r name ip; do | ||
# Salta intestazione o righe vuote | # Salta intestazione o righe vuote | ||
[[ "$name" == "hostname" || -z "$ip" ]] && continue | [[ "$name" == "hostname" || -z "$ip" ]] && continue | ||
# Pulisci spazi bianchi | # Pulisci spazi bianchi | ||
name=$(echo "$name" | xargs) | name=$(echo "$name" | xargs) | ||
ip=$(echo "$ip" | xargs) | ip=$(echo "$ip" | xargs) | ||
echo "Controllo connessione a $name ($ip)..." | echo "Controllo connessione a $name ($ip)..." | ||
# Test connessione SSH con timeout breve | # 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 | ssh -i "$SSH_KEY" -o BatchMode=yes -o ConnectTimeout=5 -o StrictHostKeyChecking=no "$SSH_USER@$ip" 'exit' 2>/dev/null | ||
if [ $? -ne 0 ]; then | if [ $? -ne 0 ]; then | ||
echo "❌ Connessione fallita a $ip ($name), salto." | echo "❌ Connessione fallita a $ip ($name), salto." | ||
continue | continue | ||
fi | fi | ||
echo "✅ Connessione riuscita a $ip ($name). Raccolgo informazioni..." | echo "✅ Connessione riuscita a $ip ($name). Raccolgo informazioni..." | ||
OUTPUT_FILE="${OUTPUT_DIR}/${name}.txt" | OUTPUT_FILE="${OUTPUT_DIR}/${name}.txt" | ||
echo "=== Informazioni per $name ($ip) ===" > "$OUTPUT_FILE" | echo "=== Informazioni per $name ($ip) ===" > "$OUTPUT_FILE" | ||
ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no "$SSH_USER@$ip" bash << 'EOF' >> "$OUTPUT_FILE" | ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no "$SSH_USER@$ip" bash << 'EOF' >> "$OUTPUT_FILE" | ||
echo -e "\n--- CPU Info ---" | echo -e "\n--- CPU Info ---" | ||
lscpu | grep 'Model name' | lscpu | grep 'Model name' | ||
echo -e "\n--- RAM Totale ---" | echo -e "\n--- RAM Totale ---" | ||
free -h | grep Mem | free -h | grep Mem | ||
echo -e "\n--- SWAP ---" | echo -e "\n--- SWAP ---" | ||
free -h | grep Swap | free -h | grep Swap | ||
echo -e "\n--- Sistema Operativo ---" | echo -e "\n--- Sistema Operativo ---" | ||
cat /etc/os-release | grep PRETTY_NAME | cat /etc/os-release | grep PRETTY_NAME | ||
echo -e "\n--- Ultima Patch Installata ---" | echo -e "\n--- Ultima Patch Installata ---" | ||
if command -v rpm &>/dev/null; then | if command -v rpm &>/dev/null; then | ||
Riga 64: | Riga 51: | ||
echo "Gestore pacchetti non riconosciuto" | echo "Gestore pacchetti non riconosciuto" | ||
fi | fi | ||
echo -e "\n--- Ultimo Riavvio ---" | echo -e "\n--- Ultimo Riavvio ---" | ||
who -b | who -b | ||
echo -e "\n--- Elenco Dischi ---" | echo -e "\n--- Elenco Dischi ---" | ||
lsblk | lsblk | ||
echo -e "\n--- Top 5 Processi per Uso CPU ---" | echo -e "\n--- Top 5 Processi per Uso CPU ---" | ||
ps -eo pid,comm,%cpu --sort=-%cpu | head -n 6 | ps -eo pid,comm,%cpu --sort=-%cpu | head -n 6 | ||
echo -e "\n--- Top 5 Processi per Uso RAM ---" | echo -e "\n--- Top 5 Processi per Uso RAM ---" | ||
ps -eo pid,comm,%mem --sort=-%mem | head -n 6 | ps -eo pid,comm,%mem --sort=-%mem | head -n 6 | ||
EOF | EOF | ||
echo "📄 File ${OUTPUT_FILE} creato." | echo "📄 File ${OUTPUT_FILE} creato." | ||
done < "$SERVER_LIST" | done < "$SERVER_LIST" |
Versione delle 08:26, 30 apr 2025
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"