Como Obter Rapidamente Todas as Informações do Hardware do Servidor no Linux
Você faz SSH em um servidor desconhecido e tenta descobrir o que há dentro dele. Qual motherboard é, quantos módulos de memória estão ocupados, em qual frequência estão rodando, em qual modo o disco está.
Normalmente você acaba usando um conjunto familiar de comandos dispersos: lspci, lsusb, dmidecode, lscpu ou lendo arquivos em /proc. No final, você fica ali montando o quadro geral na sua cabeça.
O utilitário lshw (Hardware Lister) resolve essa rotina completamente. Ele reúne dados de configuração do computador em uma árvore de hardware unificada. E faz isso não apenas no console, mas também exporta tudo para formatos prontos como XML ou HTML.
O que o lshw Pode Fazer
O programa escaneia o sistema através de várias fontes: consulta DMI (SMBIOS) em x86 e EFI, verifica CPUID, analisa listagens de barramentos PCI/AGP, USB, SCSI e IDE/ATA, e em arquitetura PowerPC lê a árvore de dispositivos OpenFirmware.
Como resultado, você obtém um relatório detalhado com todo o hardware disposto:
- Layout preciso de RAM: timings, tamanho de cada módulo, slots ocupados e máximo suportado.
- Versão do firmware BIOS/UEFI e revisão da motherboard.
- Configuração do processador, instruções suportadas, frequência do barramento e tamanhos de cache em todos os níveis.
- Controladoras de armazenamento, placas de rede e periféricos conectados com os drivers de kernel que usam.
Um bônus adicional é que o utilitário não apenas exibe um ID de dispositivo bruto—ele obtém nomes legíveis de bancos de dados locais hwdata e /usr/share/misc/.
Formatos de Saída e Cenários Práticos
A saída em texto simples do lshw às vezes pode parecer muito longa se você executar o comando sem parâmetros. Mas ele tem flags flexíveis que facilitam muito a vida de admins e desenvolvedores de infraestrutura.
Resumo Compacto
Quando você precisa avaliar rapidamente o quadro geral sem uma parede infinita de texto, o modo resumido é útil:
sudo lshw -short
Ele produzirá uma tabela organizada com o status de cada nó, caminhos dos dispositivos e uma breve descrição dos componentes.
Gerando Relatórios em HTML
Se você precisa compartilhar o inventário com colegas ou anexar o estado do servidor a um chamado, pode gerar um arquivo HTML com um único comando:
sudo lshw -html > server_spec.html
Esse tipo de relatório fica imediatamente pronto para visualização no navegador, contém seções expansíveis compreensíveis e separa visualmente as controladoras dos dispositivos filhos.
Automação via XML e JSON
Para scripts de inventário ou auditorias automáticas de máquinas, o utilitário pode gerar dados estruturados brutos:
sudo lshw -xml > hardware.xml
Esse XML é fácil de processar em Python ou alimentar em um banco de dados CMDB ao configurar um novo servidor.
Compilação e Por Trás dos Panos
O projeto é escrito em C++ e existe há muito tempo. O código compila até com versões antigas do compilador e não requer dependências pesadas.
Você pode compilar um binário a partir do código-fonte em literalmente uns segundos:
make
sudo make install
Se você está construindo uma imagem minimalista para recuperação do sistema (disco de rescue), o lshw pode ser compilado estaticamente ou comprimido com UPX para que o binário fique quase sem peso:
make static
make compressed
Para entusiastas de GUI, uma build lshw-gtk está disponível (construída via make gui), mas na prática a versão console é mais do que suficiente.
Para Quem Será Útil
O utilitário provavelmente não é necessário para quem trabalha exclusivamente com containers ou funções serverless. Mas se você está configurando servidores bare-metal, montando um servidor caseiro, diagnosticando problemas de detecção de módulos de memória ou escrevendo scripts para inventariar um parque de máquinas, lshw economiza muito tempo. Basta executar uma vez com privilégios de root e você saberá exatamente qual hardware está instalado no case.
Projetos relacionados