# dmidecode --string system-uuid
上記のコードを使用して、環境内の各ホストでUUIDを取得します。私が理解している限り、UUIDは、同じハードウェア構成を持つ同じホスト上の異なるLinuxディストリビューション間で変更されるべきではありません。しかし、さまざまなLinuxディストリビューションでいくつかのテストを行った後、この同じコマンドでさまざまなuuidに遭遇しました。
古いdmidecode
バージョンでは異なるUUID結果が得られるようです。
例えば dmidecode 2.9
SLES11.2の結果からstring A
およびdmidecode 2.12
Debian8の結果からstring B
。
自分のマシンにデプロイしているLinuxディストリビューションに関係なく、同じuuidを取得するにはどうすればよいですか?
追加情報:
ネットワークアダプタやその他のハードウェアの設定を交換してもUUIDが変更されないことがわかったため、MACアドレスではなくdmidecode
をUUIDとして使用したいと思いました。
必要なのは、ハードウェアのマイナーな変更やさまざまなOSでそれを識別するために、マシン上で持つことができるいくつかの一意の識別子です。 dmidecode
の使用は、UUIDを生成してファイルに書き込んで使用するのではなく、あるレベルでは偽物ではないと思います。
私はVMwareを使用しており、マシンクローンが頻繁に使用されるため、クローンで複製されないものが必要です。
それはswです、それはあなたがそれを望むかどうかにかかわらず変わります:)
DBインデックスについては(そしてswまたはhwベースの自動検出情報にはほとんど依存しません)-hwとswの両方を変更する必要があり、その結果情報が変更された場合は最初からやり直す必要があります。さらに悪い可能性があります-重複を取得できる場合、DBは問題になります。
インデックスに資産管理ツールを使用して(その一意性を保証するために)、自動検出された情報(MAC、HDD、RAM、CPU、uuidなど)をインデックスにマッピングしますが、個別の/独立した値として、単一の値にまとめられていません。このようにして、単一/複数値のクエリ(ほとんどの場合)によってマシンを特定し、必要に応じてインデックス/資産管理システムにフォールバックします。 1つ以上の情報値(更新されたuuidなど)を追加/変更/削除するhw/swアップグレード/スワップを処理することもできます。
hostname
を使用します:
i = gethostname(tmp,2047);
if (i) /* found Host name */
strcpy(wrk,tmp);
あまり変わらなければ:-)良いです。