【发布时间】:2012-03-07 18:01:40
【问题描述】:
我正在开发一个多进程 Linux 系统,需要生成唯一 ID。安全性不是一个考虑因素,所以一个从零开始并向上计数的 ID 生成器就可以了。而且它只是在本地机器内,不涉及网络。显然实现这一点并不难,但我只是想知道是否已经提供了任何东西(最好是轻量级的)。
【问题讨论】:
我正在开发一个多进程 Linux 系统,需要生成唯一 ID。安全性不是一个考虑因素,所以一个从零开始并向上计数的 ID 生成器就可以了。而且它只是在本地机器内,不涉及网络。显然实现这一点并不难,但我只是想知道是否已经提供了任何东西(最好是轻量级的)。
【问题讨论】:
【讨论】:
有一个名为 uuid 的命令行工具可以完全满足您的需求。我不确定它是否默认安装在各种发行版中,所以你可能必须自己做。
【讨论】:
如果没有安装 uuidgen,您可以使用 mktemp。例如,对于 16 个字符(应该足以实现系统范围的唯一 ID)...
mktemp -u XXXXXXXXXXXXXXXX
【讨论】:
也有用..
cat /etc/machine-id
/etc/machine-id 文件包含在安装过程中设置的本地系统的唯一机器 ID。机器 ID 是一个以换行符结尾、十六进制、32 个字符的小写机器 ID 字符串。从十六进制解码时,这对应于 16 字节/128 位字符串。
【讨论】: