私のスクリプトでは、MACアドレスをランダムに生成する必要があります。以下のコードは大きなスクリプトから抽出されたため、MACアドレスの計算は別の関数にあります。
これは以下のコードでうまく機能します。スクリプトを実行すると、複数のアドレスを生成した後に非常に遅くなります。
どうやってできるか加速する有効なMACアドレスを生成しますか?
#!/bin/bash
devicesCSVMacAddress="55:2d:fa:07" # <- fake MAC address prefix
devicesCSVFile=''
function mac_address() {
line=''
# ****************
# This line below when I calculate a random mac address ending seems to be slow
line+=$devicesCSVMacAddress$(od -txC -An -N2 /dev/random|tr \ :)
# ****************
devicesCSVFile+=$line'\n'
date
}
for (( i=0; i<100; i++ ))
do
mac_address
echo $i
done
echo -e $devicesCSVFile > devices.csv
この回答の説明に従ってodツールを使用しました。Bashシェルを使用して有効なランダムMACアドレスを生成する方法。
ベストアンサー1
使用/dev/urandom
!使用する理由はいくつかあります/dev/random
。/dev/urandom
参考ランダムに関する神話または/dev/random と /dev/urandom を使用する場合- 生成された数字をどこにでも投稿する場合は、確かにそうではありません。
/dev/random
利用可能なエントロピーが十分でない場合は、エントロピーを消費し、ブロックして待機します。/dev/urandom
絶対にブロックしないでください。