'sudo dmidecode | grep UUID' 和“/sys/devices/virtual/dmi/id/product_uuid”。它们相同吗?

'sudo dmidecode | grep UUID' and '/sys/devices/virtual/dmi/id/product_uuid'. Are they same?

我需要在真实硬件以及虚拟机、AWS、Azure 等上注册 Linux 服务器 运行 以进行监控,方法是发送它们的唯一 ID。我想通了

给出的 id
sudo dmidecode | grep UUID

是最好的选择,因为即使您克隆了虚拟机而没有重新初始化 MAC 地址,它的结果也会不同。

但是 dmidecode 并不是到处都安装。所以我试图了解文件 /sys/devices/virtual/dmi/id/product_uuid always 是否包含与 dmidecode[= 给出的相同的 UUID 23=]?

dmidecode | grep UUID/sys/devices/virtual/dmi/id/product_uuid 应该相等,但根据您的系统,输出可能不同。

来自 dmidecode source code:

/*
 * As of version 2.6 of the SMBIOS specification, the first 3
 * fields of the UUID are supposed to be encoded on little-endian.
 * The specification says that this is the defacto standard,
 * however I've seen systems following RFC 4122 instead and use
 * network byte order, so I am reluctant to apply the byte-swapping
 * for older versions.
 */

另请参阅:[PATCH] dmi, Use little-endian for sysfs PRODUCT UUID

我注意到 Ansible 也先尝试 /sys 然后回退到 dmidecode 可执行文件以收集 dmi 相关事实。