Linux
在 bash 中創建唯一的隨機數 (UUID)
我想創建如下的隨機唯一數字(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
在 Linux 上,
util-linux
/util-linux-ng
包提供了一個生成 UUID 的命令:uuidgen
.$ uuidgen 5528f550-6559-4d61-9054-efb5a16a4de0
引用手冊:
libuuid
uuidgen 程序使用(3) 庫創建(並列印)一個新的通用唯一標識符 (UUID) 。在本地系統上創建的所有 UUID 以及過去和將來在其他系統上創建的 UUID 中,可以合理地認為新的 UUID 是唯一的。uuidgen 可以生成兩種類型的 UUID:基於時間的 UUID 和基於隨機的 UUID。預設情況下,如果存在高質量的隨機數生成器,uuidgen 將生成基於隨機的 UUID。否則,它將選擇基於時間的 UUID。可以使用
-r
or-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。