linux 生成设备id,linux – 生成一致的机器唯一ID

我们是否可以为每台PC生成一个唯一的ID,例如uuuidgen,但除非有硬件更改,否则它永远不会改变?我正在考虑合并CPUID和MACADDR并将它们哈希以生成一致的ID,但我不知道如何使用bash脚本解析它们,我知道如何从中获取CPUID

dmidecode -t 4 | grep ID

ifconfig | grep ether

然后我需要组合这些十六进制字符串并使用sha1或md5散列它们以创建固定长度的十六进制字符串.

我该如何解析输出?

解决方法:

这两个怎么样:

$sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g'

52060201FBFBEBBF

$ifconfig | grep eth1 | awk '{print $NF}' | sed 's/://g'

0126c9da2c38

然后,您可以将它们组合并哈希:

$echo $(sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g') \

$(ifconfig | grep eth1 | awk '{print $NF}' | sed 's/://g') | sha256sum

59603d5e9957c23e7099c80bf137db19144cbb24efeeadfbd090f89a5f64041f -

要删除尾随破折号,请再添加一个管道:

$echo $(sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g') \

$(ifconfig | grep eth1 | awk '{print $NF}' | sed 's/://g') | sha256sum |

awk '{print $1}'

59603d5e9957c23e7099c80bf137db19144cbb24efeeadfbd090f89a5f64041f

正如@mikeserv指出in his answer,引导之间的接口名称can change.这意味着今天的eth0明天可能是eth1,所以如果你为eth0 grep,你可能会在不同的靴子上获得不同的MAC地址.我的系统不是这样的,所以我无法真正测试,但可能的解决方案是:

>在ifconfig的输出中为HWaddr grep,但保留所有这些,而不仅仅是对应于特定NIC的那个.例如,在我的系统上,我有:

$ifconfig | grep HWaddr

eth1 Link encap:Ethernet HWaddr 00:24:a9:bd:2c:28

wlan0 Link encap:Ethernet HWaddr c4:16:19:4f:ac:g5

通过抓取两个MAC地址并通过sha256sum传递它们,您应该能够获得一个唯一且稳定的名称,无论哪个NIC被称为:

$echo $(sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g') \

$(ifconfig | grep -oP 'HWaddr \K.*' | sed 's/://g') | sha256sum |

awk '{print $1}'

662f0036cba13c2ddcf11acebf087ebe1b5e4044603d534dab60d32813adc1a5

请注意,散列与上面的散列不同,因为我将ifconfig返回的两个MAC地址传递给sha256sum.

>根据您的硬盘驱动器的UUID创建一个哈希:

$blkid | grep -oP 'UUID="\K[^"]+' | sha256sum | awk '{print $1}'

162296a587c45fbf807bb7e43bda08f84c56651737243eb4a1a32ae974d6d7f4

标签:linux,uuid,hardware,shell-script,hashsum

来源: https://codeday.me/bug/20190808/1625023.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值