Linux 服务器硬件信息查询命令手册(DMI 信息读取)

Linux服务器硬件资产信息查询命令手册

文档说明

  1. 适用系统:CentOS/RHEL、Debian/Ubuntu 全系列Linux服务器
  2. 执行权限:所有dmidecode相关命令需root权限,普通用户执行需前缀sudo
  3. 工具依赖:dmidecode用于读取主板DMI硬件固件信息;/sys/class/dmi/id/为内核原生文件,无工具依赖
  4. 用途:机房资产盘点、硬件维保、故障定位、自动化巡检脚本开发

一、单行精简查询命令(适合快速获取单一值)

1. 查询服务器整机厂商

bash 复制代码
dmidecode -s system-manufacturer
参数解释
  • -s / --string:直接读取DMI指定字段字符串,仅输出结果,无多余日志
  • system-manufacturer:整机系统厂商专用DMI字段
输出示例

Huawei、Inspur、Dell Inc.、Hewlett-Packard

使用场景

区分华为、浪潮、戴尔、惠普等物理服务器品牌,资产台账基础采集。

2. 查询服务器整机型号

bash 复制代码
dmidecode -s system-product-name
字段含义

读取整机出厂产品型号;物理服务器输出机架型号,虚拟机输出虚拟化平台标识。

输出示例
  • 物理机:TaiShan 2280、NF5280M6、PowerEdge R750
  • 虚拟机:VMware Virtual Platform、KVM、Alibaba Cloud ECS
使用场景

硬件维保匹配、机房资产登记、服务器规格区分。

3. 查询服务器整机序列号(SN)

bash 复制代码
dmidecode -s system-serial-number
字段含义

设备出厂唯一硬件序列号,与机箱外部标签SN完全一致;云虚拟机一般输出Unknown,无实体硬件序列号。

使用场景

厂商硬件报修、机房资产盘点、故障服务器定位。

4. 合并输出:一键打印厂商+型号+序列号

bash 复制代码
echo "厂商: $(dmidecode -s system-manufacturer)"; echo "型号: $(dmidecode -s system-product-name)"; echo "序列号: $(dmidecode -s system-serial-number)"
实现原理

$() 命令嵌套,依次执行3条查询命令,格式化拼接输出结果。

优势

单条命令输出核心资产三要素,可直接写入自动化巡检脚本。


二、完整结构化DMI系统信息输出

bash 复制代码
dmidecode -t system

参数说明

  • -t / --type:指定DMI信息分类,system代表整机系统信息块

输出包含核心字段

  1. Manufacturer:整机厂商
  2. Product Name:整机型号
  3. Serial Number:设备SN序列号
  4. UUID:设备全局唯一硬件UUID
  5. Family:服务器产品系列
  6. SKU Number:设备采购SKU编码

使用场景

需要完整硬件身份存档、导出资产报表、对接资产管理平台。


三、内核原生文件读取(无dmidecode工具备用方案)

无需安装任何工具,直接读取sysfs内核导出硬件文件,极简系统、容器环境均可执行。

bash 复制代码
# 服务器整机厂商
cat /sys/class/dmi/id/sys_vendor
# 服务器整机型号
cat /sys/class/dmi/id/product_name
# 服务器整机序列号
cat /sys/class/dmi/id/product_serial

优缺点对比

✅ 优点:零工具依赖,最小化系统、容器、云主机通用

❌ 缺点:仅支持读取单一字段,无格式化输出,无法获取扩展硬件信息


四、主板硬件信息查询命令

1. 查询主板厂商

bash 复制代码
dmidecode -s baseboard-manufacturer

2. 查询主板型号

bash 复制代码
dmidecode -s baseboard-product-name

字段说明

baseboard对应主板基板硬件;浪潮、华为原厂整机的整机厂商与主板厂商一致;DIY组装机、超融合节点会出现整机、主板厂商不一致的情况。

使用场景

主板硬件故障备件更换、硬件兼容问题排查、底层硬件规格核对。


五、区分物理服务器/虚拟机 判断命令

基础查询命令

bash 复制代码
dmidecode -s system-product-name | grep -E "Virtual|VMware|KVM|Cloud"
参数拆解
  • grep -E:启用扩展正则表达式匹配
  • 匹配关键词:Virtual、VMware、KVM、Cloud,覆盖主流虚拟化、公有云平台
判断逻辑
  1. 命令有文字输出:当前设备为虚拟机/云主机,无真实物理硬件
  2. 命令无任何输出:当前设备为物理机架服务器

拓展脚本化判断(可直接写入巡检脚本)

bash 复制代码
# 自动识别并输出设备类型
res=$(dmidecode -s system-product-name | grep -E "Virtual|VMware|KVM|Cloud")
if [ -n "$res" ];then
    echo "当前设备:虚拟机/云主机"
else
    echo "当前设备:物理服务器"
fi

拓展补充硬件查询命令(文档追加模块)

拓展1:查看BIOS版本信息

bash 复制代码
# 精简单行输出BIOS版本
dmidecode -s bios-version
# 完整BIOS固件详情
dmidecode -t bios

使用场景

服务器固件升级、硬件兼容故障排查、安全基线核查。

拓展2:查看CPU硬件信息

bash 复制代码
# 查看CPU型号、单路核心数
cat /proc/cpuinfo | grep -E "model name|cpu cores"
# 统计物理CPU插槽数量
grep "physical id" /proc/cpuinfo | sort | uniq | wc -l

拓展3:内存硬件插槽、规格信息

bash 复制代码
dmidecode -t memory

可读取信息

内存条容量、运行频率、硬件厂商、插槽在位状态、最大支持扩容容量。

使用场景

服务器内存扩容规划、内存硬件故障排查。

拓展4:dmidecode工具安装命令

CentOS / RHEL / Rocky Linux

bash 复制代码
yum install -y dmidecode

Debian / Ubuntu

bash 复制代码
apt install -y dmidecode

文档使用规范总结

  1. 执行权限 :所有dmidecode系列命令必须root用户执行,普通用户执行需增加sudo前缀;内核/sys/class/dmi/id/文件普通用户可读。
  2. 环境区分
    • 物理机架服务器:优先使用dmidecode命令,获取完整资产信息;
    • 云虚拟机/极简容器:优先使用/sys/class/dmi/id/内核文件读取,无需安装工具。
  3. 脚本适配建议
    • 单一字段读取命令:适合自动化巡检、资产采集脚本;
    • dmidecode -t system完整查询:适合人工线下硬件信息存档、资产报表导出。