Привет, я хочу передать несколько файлов (очень большого размера) с сервера A на сервер B через ftp.
У меня есть учетные данные ftp сервера A и ftp сервера B - сервер B - это мой собственный сервер под управлением unix.
так что кто-нибудь может предложить мне способ прямой передачи файлов через ftp с сервера A на сервер B
Почему бы просто не запустить ftp на сервере B? ssh на сервер B, из оболочки запускает ftp [сервер A]. Тогда возьми файлы.
С помощью Безопасная копия (scp) будет работать на вас.
scp / путь / к / каталогу / имени файла remoteuser @ serverB: / путь / к / каталогу / имени файла
В Windows
Использовать замазка для того, чтобы войти в Сервер A, перейдите к пользователю root и передайте файл с помощью команды scp.
В Linux
Войдите на сервер A, перейдите к пользователю root и передайте файл с помощью команды scp.
Существует протокол, предназначенный именно для этой задачи, перемещения файлов между двумя удаленными FTP-серверами, он называется FXP (File eXchange Protocol: http://en.wikipedia.org/wiki/File_eXchange_Protocol).
Если ваши серверы поддерживают это, я бы предположил, что это будет выход, любой достойный FTP-клиент позволит вам инициировать передачу.
В противном случае вы можете использовать другой компьютер в качестве посредника с FTP-клиентом, но он может быть намного медленнее (в зависимости от вашего интернет-соединения) и потребует гораздо большей пропускной способности.
Предполагая, что вы ограничены использованием ftp, поскольку вы не заявляете, что у вас есть доступ с помощью scp, проще всего, вероятно, использовать такой инструмент, как ncftp на сервере B, чтобы загрузить файл с сервера A. Для этого существует множество инструментов командной строки, wget, curl и т. д. и т. д. Позднее это можно будет автоматизировать с помощью cron или чего-то подобного, если вам нужно делать это периодически.
Такие инструменты, как scp или rsync с ssh, предпочтительнее, поскольку они шифруют трафик и (возможно) их легче настроить для передачи целых каталогов. Итак, вы можете сначала протестировать и посмотреть, сможете ли вы (на сервере B) запустить что-то вроде:
ssh usernameA @ serverA # замените usernameA на имя пользователя и serverA на имя / IP serverA
и посмотрите, сможете ли вы войти в систему. Если можете, то можете использовать scp или rsync. Если связь между системами медленная или ненадежная, предпочтительнее использовать rsync, можно использовать команду вида: (на сервере B для загрузки файла) rsync -a -v -z --partial usernameA @ serverA: / path / to / файл .
Это приведет к rsync файла с serverA как usernameA в ваш текущий рабочий каталог на serverB, и если rsync будет прерван, его второй запуск будет перезапущен с того момента, когда соединение было потеряно. -z добавляет сжатие, не использовать, если файл уже сжат, чтобы сохранить несколько циклов процессора -a включает кучу опций, по сути, говорит о копировании вещей, сохраняя все о файле (отметки даты и т. д.)