Мне нужно перенести каталог с множеством небольших файлов (250 КБ, средний размер 5 МБ) с одного сервера на другой. Оба работают в Debian Linux. Есть ли протокол, который можно рекомендовать при передаче большого количества файлов?
Вы можете архивировать файлы и перемещать tar. Или труба tar с SSH: см. http://www.cyberciti.biz/faq/howto-use-tar-command-through-network-over-ssh-session/
Таргетирование файлов удаляет накладные расходы для каждого отдельного файла, так как tarball фактически является одним файлом.
Если вы не можете распаковать / распаковать на другой стороне (возможно, потому что это общий FTP-хостинг), вы мало что можете сделать.
rsync
определенно соответствовал бы всем требованиям и здесь. Что-то вроде
server1$ rsync -av /your/directory server2:/destination/
Это чрезвычайно гибкий и мощный инструмент с множеством полезных опций. Запустите его с -n
флаг, чтобы увидеть, что он будет делать при попытке выработать правильный синтаксис.
У вас есть вариант, если это общий хостинг, и они предлагают sftp (что есть у любых хороших) и используют sshfs для подключения удаленного сервера к вашей локальной системе. Затем вы можете перемещать файлы как обычно.