以下のようにランダムな固有番号(UUID)を作成したいと思います。
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
最初はこれを試しました。
$ rndnum=` echo $RANDOM"-"echo $RANDOM"-"echo $RANDOM"-"echo $RANDOM"-"echo $RANDOM`
$ echo $rndnum
30380-echo 21875-echo 14791-echo 32193-echo 11503
次を生成する正しい方法は何ですか(f
数値を含む)?
ffffffff-ffff-ffff-ffff-ffffffffffff
ベストアンサー1
Linuxでは、util-linux
/util-linux-ng
パッケージはUUIDを生成するためのコマンドを提供しますuuidgen
。
$ uuidgen
5528f550-6559-4d61-9054-efb5a16a4de0
引用する手動:
uuidgenプログラムは、(3)ライブラリを使用して
libuuid
新しいUUID(Universally Unique Identifier)を作成(および印刷)します。新しいUUIDは、過去および将来の他のシステムで生成されたUUIDだけでなく、ローカルシステムで生成されたすべてのUUIDの中で一意であると合理的に見なすことができます。uuidgenは、時間ベースのUUIDとランダムベースのUUIDの2種類のUUIDを生成できます。デフォルトでは、uuidgenは高品質の乱数ジェネレータが利用可能な場合はランダムベースのUUIDを生成します。それ以外の場合は、時間ベースのUUIDを選択します。
-r
または、オプションを使用して両方の-t
UUIDタイプのいずれかを強制的に生成できます。
付録:OPはコメントへのリンクを提供しました。Presto DB ドキュメント。いくつかの検索の最後に見つかったこの関連議論node.id
プロパティが実際にUUIDであることを明確に言及します。
コメントにFrostschutzが提供する情報を追加します。
uuidgen
/メソッドの代わりに、libuuid
Linuxカーネル自体が公開するインターフェースを利用してUUIDを作成できます。
$ cat /proc/sys/kernel/random/uuid
00db2531-365c-415c-86f7-503a35fafa58
UUID は要求ごとに再生成されます。