Linux服务器硬件资产信息查询命令手册
文档说明
- 适用系统:CentOS/RHEL、Debian/Ubuntu 全系列Linux服务器
- 执行权限:所有
dmidecode相关命令需root权限,普通用户执行需前缀sudo - 工具依赖:
dmidecode用于读取主板DMI硬件固件信息;/sys/class/dmi/id/为内核原生文件,无工具依赖 - 用途:机房资产盘点、硬件维保、故障定位、自动化巡检脚本开发
一、单行精简查询命令(适合快速获取单一值)
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代表整机系统信息块
输出包含核心字段
- Manufacturer:整机厂商
- Product Name:整机型号
- Serial Number:设备SN序列号
- UUID:设备全局唯一硬件UUID
- Family:服务器产品系列
- 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,覆盖主流虚拟化、公有云平台
判断逻辑
- 命令有文字输出:当前设备为虚拟机/云主机,无真实物理硬件
- 命令无任何输出:当前设备为物理机架服务器
拓展脚本化判断(可直接写入巡检脚本)
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
文档使用规范总结
- 执行权限 :所有
dmidecode系列命令必须root用户执行,普通用户执行需增加sudo前缀;内核/sys/class/dmi/id/文件普通用户可读。 - 环境区分
- 物理机架服务器:优先使用
dmidecode命令,获取完整资产信息; - 云虚拟机/极简容器:优先使用
/sys/class/dmi/id/内核文件读取,无需安装工具。
- 物理机架服务器:优先使用
- 脚本适配建议
- 单一字段读取命令:适合自动化巡检、资产采集脚本;
dmidecode -t system完整查询:适合人工线下硬件信息存档、资产报表导出。