Как читать в случайных символах N из/dev/urandom?

Во-первых, возьмите резервные копии.

Во-вторых, тестовые резервные копии.

В-третьих, все еще уверенный? Возьмите другое резервное копирование.

Запуск набега 6 с 2 сбойными дисками не является чем-то, чтобы сделать слегка. Восстановление массива собирается вызвать большую деформацию на тех дисках. Одного плохого чтения и всех Ваших данных не стало. Поэтому люди теперь рекомендуют R6 и не R5, особенно с дисками емкостью: больше надежности во время восстанавливает.

Мудрая производительность, R5/6 должен быть быстрым для чтений, может быть медленнее для записей, хотя Вы идете от 2 установок диска до 5 установок диска, таким образом, все ставки выключены.

По-моему, лучший способ состоит в том, чтобы сделать новую установку RAID6 со всеми дисками, копия и иметь два резервных диска в запасе (от RAID 1).

Так или иначе необходимо все еще сделать резервные копии сначала.

50
задан 12 August 2015 в 18:30
6 ответов
random="$(dd if=/dev/urandom bs=3 count=1)"
44
ответ дан 28 November 2019 в 19:37

Попробуйте это: dd if=/dev/urandom bs=1 count=3

Если Вы хотите поместить результат в $variable:

variable=`dd if=/dev/urandom bs=1 count=3`

Обратите внимание, что это, вероятно, не будет печатаемым.

11
ответ дан 28 November 2019 в 19:37
head -c 500 /dev/urandom | tr -dc 'a-zA-Z0-9~!@#$%^&*_-' | fold -w 3 | head -n 1

(Если вам нужны буквальные символы тире, символ тире должен стоять в конце строки, как описано выше, в отличие от * -_ ).

И чтобы объяснить, что делается с помощью вышеприведенного набора команд:

  1. head -c 500 / dev / urandom : получить первые 500 символов (байтов) из / dev / urandom .
  2. tr -dc 'a-zA-Z0-9 ~! @ # $% ^ & * _- ': Удалить все символы, кроме , указанные в ' a-zA-Z0-9 ~! @ # $% ^ & * _- ' из вывода первой команды.
  3. fold -w 3 : Отформатируйте вывод второй команды так, чтобы он содержал 3 символа в строке.
  4. head -n 1 : отобразить первую строку результата третьей команды на stdout .
46
ответ дан 28 November 2019 в 19:37

Вот тот, который создает строки base64, обратите внимание, что, хотя они ограничены строками base64, с них удаляется заполнение, поэтому вы не можете их декодировать, скорее всего, он вам все равно не понадобится.

 cat /dev/urandom | base64 | head -c 5

Замените 5 желаемым количеством символов.

Однако, если вам по какой-то причине нужно их декодировать переместите base64 в конец трубы. Затем он соберет 5 символов из urandom, и base64 закодирует его с правильным заполнением, но последняя строка может быть длиннее, чем вы хотели, из-за заполнения.

cat /dev/urandom | head -c 5 | base64
19
ответ дан 28 November 2019 в 19:37

Самым простым решением было бы следующее:

$ head -cN /dev/urandom
6
ответ дан 28 November 2019 в 19:37

Пожалуйста, проверьте man od .

Вы можете использовать, например,

od -vAn -N4 -tu4

для генерации беззнаковых десятичных 4-байтовых случайных чисел.

34
ответ дан 28 November 2019 в 19:37

Теги

Похожие вопросы