1

Можно ли скопировать файл с одного сервера на другой без предварительной загрузки?

У меня есть резервный файл объемом 10 ГБ, который я хочу скопировать с моего рабочего сервера на мой промежуточный сервер.

В настоящее время я делаю это только через Transmit, но сначала он загружает файл, а затем загружает его.

Есть ли способ напрямую переместить файл с рабочего сервера на промежуточный сервер? SCP делает это или сначала скачивает? Как насчет rsync?

РЕДАКТИРОВАТЬ

Оба являются linux-серверами под управлением Ubuntu 14.04 LTS.

2 ответа2

5

Я предполагаю, что это оба сервера linux, так как вы упомянули scp (да, я знаю, что scp существует для windows).

Просто введите ssh на один из серверов, а затем скопируйте файл непосредственно на другой сервер.

scp file user@server:/location/

Фактически, если ваша версия scp поддерживает ее (я не использовал ту, которая этого не делает, но онлайновые справочные страницы, похоже, не документируют эту функцию), вы можете использовать -3, чтобы переместить файл между двумя хостами через местный хозяин.

scp -3 file user@server:/location/

Это будет использовать пропускную способность локальной системы, но не будет «сохранять» копию файла локально.

Вы также можете использовать rsync, чтобы добиться того же, но команда немного отличается, и я не достаточно разбираюсь в этом, чтобы понять это из головы.

0

Хм ... ...Судя по всему, возможно, одна из систем каким-то образом ограничена, или, возможно, время является фактором. Короткая версия: SCP отлично подходит для однократной копии с некоторыми оговорками. Я предполагаю, что здесь задействованы 3 сервера: сервер A - это место назначения, сервер B - это удаленное местоположение с файлом, а сервер C - это машина, на которой вы хотите выполнить операцию копирования (C для копирования). Я бы проверил контрольную сумму файла на сервере B, затем scp скопирует файл, и если вы используете -3, это будет быстрая, без чековой копии. Затем я зацикливал контрольную сумму файла на сервере A после копирования и сравнивал ее с контрольной суммой с сервера B. Если они совпадают, все готово, закройте цикл; если нет, запустите копию еще раз и контрольную сумму. Если вы просто используете SCP с параметрами по умолчанию, файл будет кэширован на сервере C, а затем скопирован на сервер A. Это предотвращает проблемы при передаче и учитывает другой сетевой трафик. Если вы хотите имитировать это, но, возможно, немного быстрее, вы можете изменить первый пример с флагом -3 и вместо этого скопировать файл на сервер C, а затем скопировать файл на сервер A, проверив файл на сервере A с помощью сравнение контрольной суммы с файлом на сервере B (при необходимости вы можете повторить копию). Это аналогичная операция, но она позволяет вам удалить файл с сервера C в конце, чтобы не было лишних затрат на кеширование в ожидании освобождения. Мне не нравится играть с освобождением кэшированных ресурсов, особенно в активной производственной среде. Одна ошибка делает большой беспорядок. Мне нравится более простой вариант, когда файл доступен напрямую, поэтому я могу удалить его из собственного скрипта. Я также менее практичен в некоторых из более продвинутых средств управления. Надеюсь, это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .