如何在Linux或Perl中为每台机器创建唯一标识符?

时间:2012-02-22 09:23:28

标签: linux perl

我在许多机器上运行Perl脚本,脚本会将一些数据存储到MySQL数据库中。我需要知道数据来源。

我无法使用主机名,因为某些机器的主机名是“localhost”。

ifconfig提供随机设备和IP,部分eth0,部分eth1,其他设备名称。

有没有其他方法可以为每台机器创建唯一标识符?每次我运行Perl脚本时,这个唯一标识符都不会改变。

5 个答案:

答案 0 :(得分:1)

你可以试试uuid。

uuid - DCE兼容的通用唯一标识符库

here

答案 1 :(得分:0)

您应该使用hostid,以及先前调用genhostid,这将调用并存储计算机的唯一ID(因此在每次调用时都不会更改)。

答案 2 :(得分:0)

dmidecode的输出提供了许多硬件UUID&您的perl脚本可以利用的序列号。引用dmidecode的手册页:

  dmidecode  is a tool for dumping a computer's DMI (some say SMBIOS) table
  contents in a human-readable format. This table contains a description
  of  the  system's  hardware  components,  as well as other useful
  pieces of information such as serial numbers and BIOS revision.

答案 3 :(得分:0)

我发现的最好方法是第一次生成一个带随机ID的文件,并在文件存在后使用文件内容。我把它放在/ etc的某处,但没关系。

这可以容忍系统配置更改,但需要一些额外的工作来远程查询。

答案 4 :(得分:-1)

获取MAC地址并进行修改?

ipconfig -a

arp

并解析?