Відповіді:
Копіювання з джерела в цільове місце, де виконується sshd:
dd if=/dev/sda | gzip | ssh root@target 'gzip -d | dd of=/dev/sda'
Копіювання з джерела в ціль через sshd_host, коли націлена не працює sshd.
nc -l -p 62222 | dd of=/dev/sda bs=$((16 * 1024 * 1024))
ssh -L 62222:target:62222 sshd_host &
Джерело: dd if=/dev/sda | nc -w 3 localhost 62222
dd - якщо = - джерело, of = - призначення, bs = - розмір блоку. Різні розміри блоків можуть підвищити продуктивність. 16, як правило, є досить розумною відправною точкою. Ви також можете використовувати count =, щоб вказати, скільки блоків скопіювати.
nc - -p вказує порт, який потрібно використовувати для послуг. -l використовується для запуску послуги. -w встановлює час на очікування даних на трубопроводі перед тим, як закрити.
ssh - -L встановлює тунель на віддаленому хості. Формат аргументу - local_port:target_host:target_port
. Ваша локальна програма (nc) підключається до local_port, це з'єднання тунельне та підключене до target_port на target_host.
Визначені параметри - це лише ті, які використовуються для цього. Подивіться на чоловічі сторінки для отримання більш детальної інформації.
Кілька приміток:
source machine dd -> nc -> ssh -> ssh tunnel -> sshd server -> nc on target -> dd
Якщо ви хочете використовувати netcat без ssh. Я припускаю, що це найшвидший спосіб, а не безпечний, ви можете скопіювати та відновити весь диск так:
На комп'ютері A з IP 192.168.0.1
cat /dev/hdb | nc -p 9000
На комп'ютері B
nc -l 192.168.0.1 9000 > /dev/hdb
Пам'ятайте, що відповідно до людини nc варіант -l є:
-l Зазначається, що nc повинен слухати вхідне з'єднання, а не ініціювати з'єднання з віддаленим хостом. Це помилка , щоб використовувати цю опцію в поєднанні з -p, -s або -z опцій.
netcat не потрібен.
на машині src:
dd if=/dev/sdX bs=1M | ssh root@dstMachine " dd of=/dev/sdY bs=1M"
я припускаю, що жоден з розділів на sdX та sdY не змонтований. ви можете завантажувати обидва вікна за допомогою knoppix або іншого подібного дистрибутива.
дд - приймає дані з , якщо [якщо не передбачено - приймає його зі стандартного введення], відправляє дані з [якщо не передбачено - дані передаються на стандартний висновок]. bs - розмір блоку ... прискорить роботу.
ssh - виконує команду, надану в лапках на віддаленому вікні, всі дані, завантажені в stdin з ssh, будуть тунельовані на віддалену машину і поровідовані як stdin, щоб команда виконувалась там.
Основна копія з netcat описана тут .
Якщо вам потрібно задіяти SSH до цього, ви можете використовувати переадресацію портів через це,
-R [bind_address:]port:host:hostport
Але, в цілому, ви могли просто зробити передачу SSH в першу чергу (без netcat).
Поки файлові системи одночасно відключені, dd працює добре.
(from server1) dd if=/dev/sda bs=32k | ssh <server2> dd of=/dev/sda bs=32k
Вам потрібно буде встановити автентифікацію хост-ключа достроково, інакше підказка пароля призведе до відмови копії.
Якщо це зробити на встановленому обсязі, ви отримаєте погані результати.
Або ви можете використовувати clonezilla і "змонтувати" віддалене сховище через sshfs.
Я спробував поєднання запропонованих вище варіантів і ділюся результатами з вами. найшвидший і повільний за допомогою комбінацій розміру блоку dd, алгоритму стиснення gzip та gzip.
Як ви бачите, gzip лише покращив використання швидкого алгоритму в поєднанні з розміром блоку 1М.
time dd bs=1M if=/dev/HypGroup00/stage-snapshot | gzip --fast | ssh hyp5 'gzip -d | dd bs=1M of=/dev/HypGroup00/stage'
12884901888 bytes (13 GB) copied, 326.045 s, 39.5 MB/s
time dd if=/dev/HypGroup00/stage-snapshot | gzip --fast | ssh hyp5 'gzip -d | dd of=/dev/HypGroup00/stage'
12884901888 bytes (13 GB) copied, 370.158 s, 34.8 MB/s
time dd if=/dev/HypGroup00/stage-snapshot | ssh hyp5 dd of=/dev/HypGroup00/stage
12884901888 bytes (13 GB) copied, 370.274 s, 34.8 MB/s
time dd bs=1M if=/dev/HypGroup00/stage-snapshot | ssh hyp5 dd bs=1M of=/dev/HypGroup00/stage
12884901888 bytes (13 GB) copied, 372.906 s, 34.6 MB/s
time dd bs=1M if=/dev/HypGroup00/stage-snapshot | gzip | ssh hyp5 'gzip -d | dd bs=1M of=/dev/HypGroup00/stage'
12884901888 bytes (13 GB) copied, 520.116 s, 24.8 MB/s
Були використані два швидких сервери, з'єднані з GigE через комутатор Enterprise GigE за допомогою локальних дисків через LVM.
Схоже, ви використовуєте кувалду для того, щоб зламати горіх тут - або, можливо, краща аналогія намагається обрізати газон ножицями :)
Я б настійно пропонував вам переглянути деякі інструменти для виконання такої роботи, якщо у вас немає великих причин зробити це вдома.
Trinity Rescue Kit - це безкоштовний liveCD, який підтримує диски зображень через багатоадресну передачу і може робити все, що завгодно (або взагалі хтось, хто думає про ті ж лінії), не переходячи до повнорозмірних систем зображень.