Лучший способ получить идентификатор машины в Linux?

Каков наилучший способ получить уникальный идентификатор машины в GNU/Linux для архитектуры i386?

Есть ли хорошие способы, кроме адреса mac?

Ответ 1

В зависимости от вашего ядра информация DMI может быть доступна через sysfs. Попробуйте:

# 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
...

Ответ 2

Вы можете использовать lshal. Для этого необходимо установить hal (apt-get install hal или yum install hal). Таким образом, вы можете получить доступ ко всей информации о dmidecode без прав root.

Некорневой эквивалент

# dmidecode | grep -i uuid

будет

$ lshal |grep -i system.hardware.uuid

И аналогично другая информация в соответствии с вашими потребностями.

Ответ 3

Простой и переносимый способ вычисления вашего собственного sysid может заключаться в сериализации uname(), gethostid() и некоторых инодов, таких как /home или homedir вашего приложения (получаемых с помощью stat()) и т.д., В строку и хэширование.