Как этот скрипт генерирует IP-адрес случайным образом?

Вам действительно нужна побитовая копия всего удаленного диска? например для цифровой криминалистики?

Если нет, то если вам просто нужна копия разделов и данных на них, вы можете сэкономить много времени и передать полосу пропускания путем:

  1. копирования таблицы разделов, например с sfdisk .

Например:

ssh user@hostip sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdc

или в два этапа с временным файлом:

ssh user@hostip sudo sfdisk -d /dev/sda > /tmp/sda.txt
sudo sfdisk /dev/sdc < /tmp/sda.txt
  1. с использованием partclone для клонирования только тех частей файловой системы, которые используются в данный момент, игнорируя все пустое пространство и удаленные файлы и т. д.

Например:

ssh user@hostip sudo partclone.ext4 -c -s /dev/sda1 -o - | 
    sudo partclone.ext4 -r -s - -o /dev/sdc1

partclone поддерживает все общие и некоторые необычные файловые системы, используемые в Linux (ext2 / 3/4, btrfs, xfs и т.д.) и Windows (NTFS, FAT).

partclone упакован для большинства дистрибутивов, включая debian. sfdisk является частью пакета util-linux .

Вам все еще нужно решить проблему ssh / sudo, но @Gilles дал на это хороший ответ.

Самый простой способ избавиться от запросов на ввод пароля - это сделать все это как root ( sudo -i , чтобы получить корневую оболочку), поэтому вам не нужно начинать каждую команду с помощью sudo и (как root) запустить ssh-copy-id hostip , чтобы установить ssh-ключ root @ localhost в ~ / .ssh / authorized_keys на hostip. Затем вы можете запустить:

ssh hostip sfdisk -d /dev/sda | sfdisk /dev/sdc
ssh hostip partclone.ext4 -c -s /dev/sda1 -o - | 
    partclone.ext4 -r -s - -o /dev/sdc1

Если вы используете ssh-agent, вам нужно будет ввести кодовую фразу для корневого ключа не более одного раза (или не вводить вообще, если вы использовали ее ранее).

-1
27.10.2018, 18:17
1 ответ

Команда

dd if=/dev/urandom bs=4 count=1 2>/dev/null | od -An -tu1

генерирует данные типа

     251 113 126 026

, попросив ddпрочитать четыре байта из устройства urandom, а затем преобразовав их в серию целых чисел без знака по 1 байту каждое с помощью od.

Это передается setпосредством подстановки команд ($(...)), и setустанавливает позиционные параметры $1, $2, $3и $4в целые числа.

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


Другой способ генерировать случайные IP-адреса (вне диапазонов частных адресов):

$ nmap -n -iR 10 -sL | awk '/report for/ { print $NF }'
221.37.208.42
121.3.97.158
203.225.119.103
145.139.220.88
95.153.25.126
149.73.57.221
165.178.177.39
11.187.21.175
175.211.240.124
130.89.42.47
3
28.01.2020, 05:07

Теги

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