在GNU/Linux
架构i386
中获取唯一机器ID的最佳实践方法是什么?
除了mac
地址之外还有什么好方法吗?
答案 0 :(得分:29)
根据您的内核,可以通过sysfs获取DMI信息。 试试那些:
# cat /sys/class/dmi/id/board_serial
xxxxxxxxxxxxxxx
# cat /sys/class/dmi/id/product_uuid
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
或使用工具
# dmidecode -s baseboard-serial-number
...
# dmidecode -s system-uuid
...
答案 1 :(得分:5)
你可以使用lshal。这需要首先安装hal(apt-get install hal或yum install hal)。这样,您就可以访问没有root权限的dmidecode的所有信息。
非根等效
# dmidecode | grep -i uuid
将
$ lshal |grep -i system.hardware.uuid
同样根据您的需要提供其他信息。
答案 2 :(得分:4)
在具有系统机器ID的现代机器上,systemd-machine-id-setup创建了它,其位置是more standard并使用标准化的format。只是:
cat /etc/machine-id
答案 3 :(得分:0)
一种简单而可移植的计算自己的sysid的方法可能是将uname(),gethostid()以及一些inode(例如/ home或应用程序homedir(通过stat()获得)等)序列化为字符串并进行哈希处理。