我有一个运行在很多机器上的Perl脚本,脚本会将一些数据存储到MySQL数据库中。我需要知道数据的来源。如何在Linux或Perl中为每台机器创建唯一标识符?
我不能使用主机名,因为有些机器的主机名是'localhost'。
ifconfig
给出随机设备和IP,一些eth0
,一些eth1
,一些其他设备名称。
是否有任何其他方式为每台机器创建唯一标识符?每次运行Perl脚本时,这个唯一标识符都不会改变。
我有一个运行在很多机器上的Perl脚本,脚本会将一些数据存储到MySQL数据库中。我需要知道数据的来源。如何在Linux或Perl中为每台机器创建唯一标识符?
我不能使用主机名,因为有些机器的主机名是'localhost'。
ifconfig
给出随机设备和IP,一些eth0
,一些eth1
,一些其他设备名称。
是否有任何其他方式为每台机器创建唯一标识符?每次运行Perl脚本时,这个唯一标识符都不会改变。
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.
采取MAC地址并修改它?
ipconfig -a
或
arp
和分析?
如果在同一台机器上的Windows和Linux下的MAC地址是否相同,如果烧录到ROM中? (还有一些MAC地址是本地分配的 - 有一点说明了这一点,这些地址不可能是全球唯一的) – Flexo 2012-02-22 09:36:40
是的 - 它在windows和linux中是一样的 - 但我没有弄清它的相关性。然而,第二点很重要,虽然我不确定人们是否经常这样做(因为网卡的MAC地址已经是全球唯一的),但是网卡的MAC地址确实可以被分配。另外我假设你说的是网卡的ROM,因为机器的ROM与讨论无关[它不存储MAC地址] – Fakrudeen 2012-02-22 10:07:05
我发现最好的方法是产生一个随机ID第一次文件,一旦文件存在使用该文件的内容。我把它放在/ etc的某处,但没关系。
这是宽容的系统配置更改,但需要一些额外的工作来远程询问。
哪些常见的,可靠的,独特的信息/硬件/这些机器有什么?他们运行哪个操作系统?没有这些信息,你得到的答案就会像随机废话一样。 – 2012-02-22 12:09:13