Comprobando el hardware de un servidor Linux sin abrirlo: hwinfo (I)

Existen situaciones en las que es necesario conocer en detalle el hardware del que se compone un servidor del que no tenemos información pero que está en producción y que por tanto no se puede detener para abrirlo y ver sus «tripas». Un caso muy típico es cuando es necesario ampliar la memoria RAM y no sabemos ni qué tipo admite su placa base ni cuantas ranuras están ya ocupadas. Si se trata de un servidor basado en Linux, tenemos varias herramientas a nuestra disposición para esta tarea. La primera de la que voy a hablar, por su sencillez de uso, es hwinfo.

Se trata de una utilidad de línea de comandos que es necesario ejecutar como administrador ya que de otra forma no tendremos los privilegios necesarios para acceder a la información del hardware. Para instalarlo en Debian basta con ejecutar:

# apt-get install hwinfo

Si se invoca directamente hwinfo sin ningún parámetro, veremos como se pone inmediatamente a detectar el hardware del servidor, tras lo cual muestra en pantalla un informe completo sobre el mismo. Como esta información suele ser muy extensa, lo más apropiado es redirigir la salida estándar a un fichero:

# hwinfo > /tmp/$(date +%Y%m%d)-$(hostname)-hardware.txt

De este modo obtendremos un fichero de texto plano que contiene el informe detallado del hardware del sistema y cuyo nombre está compuesto por la fecha y el nombre del servidor. Para consultarlo, podemos abrirlo así:

# less /tmp/20130708-servidor-hardware.txt

El informe por defecto es como digo muy extenso, por lo que también podemos optar por su versión resumida:

# hwinfo --short
cpu:
Intel(R) Core(TM)2 Duo CPU T7250 @ 2.00GHz, 2000 MHz
Intel(R) Core(TM)2 Duo CPU T7250 @ 2.00GHz, 800 MHz
keyboard:
/dev/input/event14 USB Keykoard
/dev/input/event0 AT Translated Set 2 keyboard
mouse:
/dev/input/mice Pixart Imaging USB Optical Mouse
/dev/input/mice SynPS/2 Synaptics TouchPad
graphics card:
nVidia GeForce 8600M GT
...

En el caso de que sólo nos interese conocer los detalles de ciertos componentes hardware, podemos restringir la consulta mediante el uso de una serie de palabras clave cuyo listado podemos obtener en el manual electrónico mediante el comando man hwinfo.

Por ejemplo, si quiero conocer información sobre el procesador:

# hwinfo --cpu
01: None 00.0: 10103 CPU
[Created at cpu.304]
Hardware Class: cpu
Arch: Intel
Vendor: "GenuineIntel"
Model: 6.15.13 "Intel(R) Core(TM)2 Duo CPU T7250 @ 2.00GHz"
...

Y si quiero detalles sobre la RAM:

# hwinfo --mem
1: None 00.0: 10102 Main Memory
[Created at memory.61]
Hardware Class: memory
Model: "Main Memory"
Memory Range: 0x00000000-0xbe053fff (rw)
Memory Size: 3 GB
Config Status: cfg=new, avail=yes, need=no, active=unknown

Estos parámetros se pueden combinar en un sólo comando e incluso con --short para obtener un informe resumido:

# hwinfo --short --cpu --network
cpu:
Intel(R) Core(TM)2 Duo CPU T7250 @ 2.00GHz
Intel(R) Core(TM)2 Duo CPU T7250 @ 2.00GHz
network:
wlan0 Dell Wireless 1390 WLAN Mini-Card
eth0 Broadcom BCM4401-B0 100Base-TX

En todo el tiempo que llevo usándolo, hwinfo se ha mostrado muy estable y nunca ha producido problemas en los sistemas en los que lo he ejecutado. Sin embargo, si sospechamos que algún componente hardware pueda estar defectuoso, considero una temeridad utilizar una herramienta como hwinfo, ya que podríamos provocar un «kernel panic» y la más que probable caída del servidor.

Según consta en el manual de hwinfo, tiene un problema: no es capaz de detectar todo el hardware. Por eso, lo complementaremos en futuros artículos con otras herramientas igualmente interesantes.