Назад | Перейти на главную страницу

Передача большого количества файлов между двумя серверами

Возможный дубликат:
Самый быстрый способ перенести 55 ГБ изображений на новый сервер

Я перехожу с одного сервера на другой. Я хочу передать тысячи файлов с одного сервера на другой.

Какой здесь лучший подход?

Обе системы работают под управлением CentOs. Тот, с которого я перехожу, использует DirectAdmin, другой - cPanel. Имею на обоих SSH-доступ.

В настоящее время я тарирую разные папки, но когда файлы большие, а количество файлов велико, это занимает слишком много времени)

С исходного хоста:

$ rsync -avz --progress /path/to/files/ user@host2.example.com:/path/to/files/

По своему опыту могу сказать, что tar поверх ssh работает быстрее, чем rsync, при работе с большим количеством небольших файлов.

Предлагаю попробовать.

Команда была примерно такой (она сохраняет разрешения):

tar cXpf - / data | ssh user @ new-server "tar xpf - -C / new-location /"

Причина может заключаться в том, что tar создает непрерывный поток, а ssh сжимает его.

Попробуйте рассказать нам о результатах.

Я бы посмотрел на использование rsync со сжатием между двумя серверами, используя SSH в качестве «туннеля» для установления соединения по сети.

RSync через SSH, вероятно, будет вашим лучшим выбором. Посмотри Вот о том, как это можно настроить.

Лучше всего использовать rsync, но почему?

Причина в том, что пока вы переносите большой кусок файлов и по какой-то причине соединение разрывается, вам не нужно беспокоиться о том, какие файлы были переданы, а какие нет.

Об этом позаботится rsync, так как он быстро сравнит файлы, имеющиеся в месте назначения, с исходными и передаст только соответствующие. Такой подход экономит как полосу пропускания, так и время.

Вы можете использовать следующий синтаксис для rsync

rsync -avz /path/to/source user@host.com:/path/to/destination

По-видимому, если у вас есть ключ SSH, а аутентификация по паролю отключена на целевом сервере, используйте это

    rsync -avz /path/to/source -e "ssh -i /path/to/ssh-key" user@host.com:/path/to/destination