我需要一个命令来从unix机器创建一个唯一的指纹

我需要一个命令来从unix机器创建一个唯一的指纹

我需要在 Unix 机器上为我的应用程序创建一个序列号。

  1. 生成的序列号应该是唯一的
  2. 不会随时间而改变(仅在硬盘或主板改变后改变)
  3. 不需要root权限。

我发现在 Ubuntu 中以下文件夹下有一些有关硬盘的信息:

/dev/disk/by-id

这些文件似乎是连接到机器的硬盘的序列号。我想使用以下命令生成机器的唯一指纹。

ls /dev/disk/by-id | grep  -v 'part'

这可能吗?这个命令是否满足我上面指定的条件?

答案1

唯一标识机器的一个好方法是通过 SMBios UUID 值。在 Linux 中,可以使用 dmidecode 工具访问它。

# dmidecode -s system-uuid 1E00CBE0-008C-5900-FBCE-C86000B2350B

另一种方法是使用根文件系统的 UUID。文件系统 UUID 可以在“/dev/disks/by-uuid”中访问。这样做的好处是不需要 root 权限。

另一种方法是使用 blkid:

rootNode="$(mount | grep " / ")"; blkid -s UUID -o value ${rootNode%% *}

相关内容