Возможный дубликат:
Самый быстрый способ перенести 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