Технически возможно выполнить межсерверную передачу по FTP (вы открываете управляющие соединения для каждого сервера и настраиваете соединения для передачи данных соответствующим образом, чтобы они указывали между собой, а не на ваш локальный хост). Я сделал это вручную (хотя и много лет назад), но я не знаю ни одного "дружественного" клиентского приложения, поддерживающего эту функцию.
Если любой из хостов разрешает вам доступ по SSH, вы можете просто использовать утилиту командной строки ftp
чтобы отправить файл напрямую таким образом:
- войти на сервер через SSH
- Перейдите в правильный каталог (где файл либо есть, либо хочет пойти)
- запустите
ftp <name_or_IP_address_of_other_server>
и введите свое имя пользователя и пароль при появлении запроса
- перейдите в каталог, где находится файл (или он хочет перейти) с помощью команды
cd
- выполните
binary
команду, чтобы убедиться, что в передаче не происходит преобразований перевода строки (или аналогичных)
- выдать
hash
если вы хотите немного индикации прогресса во время передачи файла
- если при отправке файла с сервера, который вы использовали по SSH, введите команду
put <filename>
, и если вы хотите получить файл с другого сервера на тот, на котором вы вошли в систему, используйте вместо него значение get <filename>
.
- подождите ... (даже если вы получаете 100-мегабитную передачу между серверами, 2-гигабайтный файл займет несколько минут)
Для получения более подробной информации о клиенте ftp из командной строки либо запустите на сервере man ftp
либо посмотрите онлайновую копию man-страниц, например эту (хотя чтение локальной справочной страницы сервера для команды немного безопаснее, поскольку вы точно знаете, что это) речь идет о версии у вас).
Если оба хоста позволяют вам доступ по SSH, то это немного проще, так как в большинстве случаев SCP/SFTP также будет включен, и вы можете сделать это:
- войдите на сервер, на который необходимо скопировать файл
- перейдите в каталог, где файл должен быть
- выполните команду, подобную
scp user@other.server.tld:~/path/filename .
или же
- войдите на сервер, на котором в данный момент находится файл
- выполните команду вроде
scp path/to/file/filename user@other.server.tld:~/
Еще один вариант, если конечный сервер разрешает доступ по SSH и файл, который вы хотите передать на него, доступен через HTTP или HTTPS, это передать файл по HTTP(S) с помощью wget (на большинстве хостов wget будет установлен на их серверах):
- войдите на сервер, на который необходимо скопировать файл
- перейдите в каталог, где файл должен быть
- запустите команду вроде
wget http://source.server.tld/path/filename