Как я могу создать уникальные идентификаторы для каждой машины в Linux или Perl? - PullRequest
2 голосов
/ 22 февраля 2012

У меня есть скрипт Perl, работающий на многих машинах, он будет хранить некоторые данные в базе данных MySQL.Мне нужно знать источник данных.

Я не могу использовать имя хоста, потому что имя хоста некоторых машин - 'localhost'.

ifconfig дает случайные устройства и IP, некоторые eth0, некоторыеeth1, другое имя устройства.

Есть ли другой способ создания уникальных идентификаторов для каждой машины?И каждый раз, когда я запускаю скрипт Perl, этот уникальный идентификатор не меняется.

Ответы [ 5 ]

1 голос
/ 22 февраля 2012

Вы можете попробовать uuid.

uuid - библиотека универсальных уникальных идентификаторов, совместимая с DCE

здесь

0 голосов
/ 22 февраля 2012

Лучший способ, который я нашел, - это сгенерировать файл со случайным идентификатором в первый раз и использовать содержимое файла, как только файл существует.Я помещаю его в / etc где-нибудь, но это не имеет значения.

Это терпимо к изменениям конфигурации системы, но требует дополнительной работы для удаленного опроса.

0 голосов
/ 22 февраля 2012

Выходные данные 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.
0 голосов
/ 22 февраля 2012

Вы должны использовать hostid , в дополнение к предыдущему вызову genhostid , который сгенерирует и сохранит уникальный идентификатор для машины (поэтому он не будет меняться при каждом вызове).

0 голосов
/ 22 февраля 2012

взять MAC-адрес и изменить его?

ipconfig -a

или

arp

и разобрать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...