Come Ottenere Rapidamente Tutti i Dettagli dell'Hardware del Server in Linux
Ti colleghi tramite SSH a un server sconosciuto e cerchi di capire cosa c'è effettivamente dentro. Che scheda madre ha, quanti moduli di memoria sono occupati, a che frequenza funzionano, in che modalità è il disco.
Di solito finisci per usare un insieme familiare di comandi sparsi: lspci, lsusb, dmidecode, lscpu o leggendo file in /proc. Alla fine, resti lì a comporre il quadro generale nella tua testa.
L'utility lshw (Hardware Lister) risolve completamente questa routine. Raccoglie i dati di configurazione del computer in un albero hardware unificato. E lo fa non solo nella console, ma esporta tutto anche in formati pronti all'uso come XML o HTML.
Cosa può fare lshw
Il programma esegue la scansione del sistema attraverso diverse fonti: interroga DMI (SMBIOS) su x86 e EFI, legge CPUID, analizza le liste dei bus PCI/AGP, USB, SCSI e IDE/ATA, e sull'architettura PowerPC legge l'albero dei dispositivi OpenFirmware.
Come risultato, ottieni un report dettagliato con tutto l'hardware disposto:
- Layout preciso della RAM: timings, dimensione di ogni modulo, slot occupati e massimo supportato.
- Versione del firmware BIOS/UEFI e revisione della scheda madre.
- Configurazione del processore, istruzioni supportate, frequenza del bus e dimensioni della cache a tutti i livelli.
- Controller di archiviazione, schede di rete e periferiche collegate con i driver del kernel che utilizzano.
Un bonus extra è che l'utility non si limita a emettere un ID dispositivo raw—recupera nomi leggibili da database locali hwdata e /usr/share/misc/.
Formati di Output e Scenari Pratici
L'output in testo semplice di lshw a volte può sembrare troppo lungo se esegui il comando senza parametri. Ma ha flag flessibili che rendono la vita molto più facile per admin e sviluppatori di infrastrutture.
Riepilogo Compatto
Quando hai bisogno di valutare rapidamente il quadro generale senza una parete infinita di testo, la modalità breve è utile:
sudo lshw -short
Mostrerà una tabella ordinata con lo stato di ogni nodo, percorsi dei dispositivi e una breve descrizione dei componenti.
Generazione di Report HTML
Se hai bisogno di condividere l'inventario con i colleghi o allegare lo stato del server a un ticket, puoi generare un bel file HTML con un singolo comando:
sudo lshw -html > server_spec.html
Un report del genere è immediatamente pronto per essere visualizzato nel browser, contiene sezioni espandibili comprensibili e separa visivamente i controller dai dispositivi figli.
Automazione tramite XML e JSON
Per script di inventario o audit automatici delle macchine, l'utility può emettere dati strutturati raw:
sudo lshw -xml > hardware.xml
Questo XML è facile da parsare in Python o inserire in un database CMDB quando si configura un nuovo server.
Build e Sotto il Cofano
Il progetto è scritto in C++ ed esiste da molto tempo. Il codice compila anche con versioni vecchie del compilatore e non richiede dipendenze pesanti.
Puoi compilare un binario dal codice sorgente in letteralmente un paio di secondi:
make
sudo make install
Se stai costruendo un'immagine minimalista per il recovery del sistema (disco di rescue), lshw può essere compilato staticamente o compresso con UPX così che il binario pesi quasi nulla:
make static
make compressed
Per gli appassionati di GUI, è disponibile una build lshw-gtk (compilata tramite make gui), ma in pratica la versione console è più che sufficiente.
A Chi Sarà Utile
L'utility probabilmente non è necessaria per chi lavora esclusivamente con container o funzioni serverless. Ma se stai configurando server bare-metal, costruendo un home server, diagnosticando problemi di rilevamento dei moduli di memoria, o scrivendo script per inventariare una flotta di macchine, lshw fa risparmiare un sacco di tempo. Basta eseguirla una volta con privilegi root e saprai esattamente quale hardware è installato nel case.
Progetti correlati