>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
C-plus-plus

Comment récupérer rapidement toutes les informations matérielles d'un serveur sous Linux

Vous vous connectez en SSH à un serveur inconnu et essayez de comprendre ce qu'il y a dedans. Quelle carte mère, combien de modules mémoire sont occupés, à quelle fréquence ils fonctionnent, quel mode utilise le disque.

D'habitude, vous finissez par utiliser un ensemble familier de commandes dispersées : lspci, lsusb, dmidecode, lscpu ou en lisant des fichiers dans /proc. Au final, vous restez là à assembler le tableau d'ensemble dans votre tête.

L'utilitaire lshw (Hardware Lister) résout complètement cette routine. Il collecte les données de configuration de l'ordinateur dans un arbre matériel unifié. Et il le fait non seulement dans la console, mais exporte aussi tout dans des formats prêts à l'emploi comme XML ou HTML.

Ce que lshw peut faire

Le programme scanne le système à travers plusieurs sources : il interroge DMI (SMBIOS) sur x86 et EFI, jette un œil dans CPUID, analyse les listings des bus PCI/AGP, USB, SCSI et IDE/ATA, et sur l'architecture PowerPC lit l'arbre des périphériques OpenFirmware.

Vous obtenez ainsi un rapport détaillé avec tout le matériel présenté :

  • Disposition précise de la RAM : timings, taille de chaque module, slots occupés et maximum supporté.
  • Version du firmware BIOS/UEFI et révision de la carte mère.
  • Configuration du processeur, instructions supportées, fréquence du bus et tailles des caches à tous les niveaux.
  • Contrôleurs de stockage, cartes réseau et périphériques connectés avec les pilotes kernel qu'ils utilisent.

Un bonus supplémentaire est que l'utilitaire ne se contente pas de sortir un ID de périphérique brut — il extrait des noms lisibles depuis des bases de données locales hwdata et /usr/share/misc/.

Formats de sortie et scénarios pratiques

La sortie en texte brut de lshw peut parfois sembler trop longue si vous lancez la commande sans paramètres. Mais il dispose d'options flexibles qui facilitent considérablement la vie des admins et des développeurs d'infrastructure.

Résumé compact

Quand vous avez besoin d'évaluer rapidement le tableau d'ensemble sans un mur de texte sans fin, le mode bref est utile :

sudo lshw -short

Il affichera un tableau net avec le statut de chaque nœud, les chemins des périphériques et une brève description des composants.

Génération de rapports HTML

Si vous devez partager l'inventaire avec des collègues ou joindre l'état du serveur à un ticket, vous pouvez générer un beau fichier HTML en une seule commande :

sudo lshw -html > server_spec.html

Un tel rapport est immédiatement prêt à être visualisé dans un navigateur, contient des sections collapsibles compréhensibles et sépare visuellement les contrôleurs des périphériques enfants.

Automatisation via XML et JSON

Pour les scripts d'inventaire ou les audits automatiques de machines, l'utilitaire peut sortir des données structurées brutes :

sudo lshw -xml > hardware.xml

Ce XML est facile à parser en Python ou à alimenter dans une base de données CMDB lors de la configuration d'un nouveau serveur.

Compilation et fonctionnement interne

Le projet est écrit en C++ et existe depuis très longtemps. Le code compile même avec d'anciennes versions du compilateur et ne nécessite pas de dépendances lourdes.

Vous pouvez compiler un binaire depuis les sources en littéralement quelques secondes :

make
sudo make install

Si vous construisez une image minimaliste pour la récupération système (disque de rescue), lshw peut être compilé en statique ou compressé avec UPX pour que le binaire pèse presque rien :

make static
make compressed

Pour les amateurs de GUI, une build lshw-gtk est disponible (construite via make gui), mais en pratique la version console est plus que suffisante.

À qui cela sera utile

L'utilitaire n'est probablement pas nécessaire pour ceux qui travaillent exclusivement avec des conteneurs ou des fonctions serverless. Mais si vous configurez des serveurs bare-metal, construisez un serveur domestique, diagnostiquez des problèmes de détection de modules mémoire, ou écrivez des scripts pour inventorier un parc de machines, lshw fait gagner un temps fou. Lancez-le une seule fois avec les privilèges root et vous saurez exactement quel matériel est installé dans le boîtier.

Projets similaires