Страницы

Поиск по вопросам

суббота, 14 декабря 2019 г.

Копирование большого количества файлов с диска на удаленную машину в Linux

#linux #файлы #файловая_система #резервное_копирование #передача_данных


суть вопроса такова:

Имеется диск на хосте А, размером 3.7 Тб, на который записано 1.3 Тб данных на разделе
NTFS.

Имеется удаленный хост В, на котором есть 2 Тб свободного места на разделе ext4

Задача: скопировать с хоста А на хост В 1.3 Тб данных.

Почему я не использую rsync? Потому что при копировании мелких файлов скорость передачи
падает до 100 кбайт/с, а таковых там достаточно много

Почему не dd? Потому что копируется весь раздел, размером 3.7 Тб.

Подскажите, как правильно и относительно быстро скопировать данные на удаленный хост?
Возможно, можно использовать dd, но не создавать образ размера 3.7 тб?

ОС на хосте А: Ubuntu 18.04

На хосте В: Debian 8
    


Ответы

Ответ 1



Обычно самый простой способ — это запаковать файлы в архив и отправить на удалённый хост. Можно это сделать обычным tar'ом tar cf /path/to/my/tarfile.tar.gz -C /путь/к/источнику . scp /path/to/my/tarfile.tar.gz host_В:/tmp/ ssh host_В tar xf /tmp/tarfile.tar.gz -C /путь/к/назначению Но т.к. на удалённом хосте, по условию задачи, не хватит места и для архива и для данных, то можно воспользоваться тем, что утилита tar умеет читать и писать в/из стандартного ввода/вывода и сделать всё в одно действие: tar cz -C /путь/к/источнику . | ssh host_В tar xz -C /путь/к/назначению Если в ssh включена компрессия или канал достаточно широкий, то следует убрать ключ z из аргументов tar. Из минусов — отсутствие возможности возобновить передачу при сбое.

Комментариев нет:

Отправить комментарий