获取系统的唯一标识符(不是MAC地址)?
问题描述:
由于某些原因,我需要获得Linux系统的唯一标识符,该系统在系统重新启动时不会更改(但可能会在用户更换可命名数量的硬件或格式化硬盘时更改)。获取系统的唯一标识符(不是MAC地址)?
以下解决方案不可能:
- 使用MAC地址(这已被使用,但无法在某些系统上 因为没有网络接口)
- 使用BLKID获得UUID的分区 - 此命令不是 在所有系统上都可用,并且 自动找出要使用哪个分区有点困难
那么......任何其他想法如何唯一地识别一个系统?
谢谢!
答
我认为你的问题的答案将取决于你认为是系统的“永久”部分。假设您决定从应用程序的角度来看,硬盘分区是半永久性的,然后计算/proc/paritions
的某些内容的散列。
在bash,类似:
#!/bin/sh
cat /proc/partitions |sha1sum|cut "-d " -f1
+0
使用'#!/ bin/sh'会更便携并且可能更快(例如,在Debian中它使用更快的Dash shell)。通常没有理由使用Bash脚本编写IMO。 – 2015-02-10 15:25:11
+0
好点 - 编辑应用。 – user590028 2015-02-10 15:33:13
[此](http://www.binarytides.com/linux-commands-hardware-info/)可以是有帮助的。特别是hdparm似乎对我有效。 – 2015-02-10 14:59:53
http://en.wikipedia.org/wiki/Ship_of_Theseus祝你好运... – 2015-02-10 14:59:58
请问你需要什么?也许有一些其他解决方案不需要这样一个唯一的标识符。 – 2015-02-10 15:01:03