#!/bin/bash # Funzione per visualizzare le informazioni di sistema show_system_info() { clear # Connessione Internet ping -c 1 google.com &> /dev/null && echo "Internet: Connessa" || echo "Internet: Disconnessa" # Tipo di sistema operativo os=$(uname -o) echo "Tipo di sistema operativo: $os" # Nome e versione del sistema operativo os_name=$(grep -m 1 -oP '(?<=^NAME=").+(?=")' /etc/os-release | tr -d '"') os_version=$(grep -m 1 -oP '(?<=^VERSION=").+(?=")' /etc/os-release | tr -d '"') echo "Nome del sistema operativo: $os_name" echo "Versione del sistema operativo: $os_version" # Architettura architecture=$(uname -m) echo "Architettura: $architecture" # Rilascio del kernel kernel=$(uname -r) echo "Rilascio del kernel: $kernel" # Hostname hostname=$(hostname) echo "Hostname: $hostname" # Informazioni sulle interfacce di rete echo "Informazioni sulle interfacce di rete:" ip addr show | grep -E 'inet |ether' | awk '{ if ($1 == "inet") { split($2, ip, "/") printf " %-10s Indirizzo IP: %s\n", $NF, ip[1] } else if ($1 == "ether") { printf " %-10s Indirizzo MAC: %s\n", $NF, $2 } }' # Indirizzo IP esterno if command -v wget &> /dev/null; then external_ip=$(wget -qO- ipecho.net/plain) echo "Indirizzo IP esterno: $external_ip" else echo "Avviso: wget non è installato. Impossibile ottenere l'indirizzo IP esterno." fi # Server DNS nameservers=$(grep -oP '(?<=^nameserver ).*' /etc/resolv.conf | paste -sd ' ') echo "Server DNS: $nameservers" # Utenti connessi users=$(who | cut -d' ' -f1 | sort -u | paste -sd ', ') echo "Utenti connessi: $users" # Utilizzo RAM e SWAP ram_info=$(free -h | grep -E 'Mem|Swap' | awk '{print $1 ": " $3 "/" $2}') echo "Utilizzo RAM e SWAP:" echo "$ram_info" | sed 's/^/ /g' # Utilizzo disco disk_info=$(df -h | grep '^/dev' | awk '{print $6 ": " $3 "/" $2 " (" $5 ")"}') echo "Utilizzo disco:" echo "$disk_info" | sed 's/^/ /g' # Partizioni su disco echo "Partizioni su disco:" lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL | grep -v 'loop' | sed 's/^/ /g' # Carico medio load_avg=$(uptime | awk -F'[a-z]:' '{ print $2}') echo "Carico medio: $load_avg" # Tempo di attività del sistema uptime=$(uptime -p | cut -d' ' -f2-) echo "Tempo di attività del sistema: $uptime" } # Gestione degli argomenti di riga di comando if [ "$1" == "-i" ]; then script_path="$(readlink -f "$0")" sudo cp "$script_path" /usr/local/bin/linux-status echo "Script installato. Eseguire 'linux-status' per avviarlo." elif [ "$1" == "-v" ]; then echo "Versione dello script: 1.3" else show_system_info fi