Вы упомянули ftp, telnet и sftp. Они могут быть написаны с помощью чего-то вроде ожидания или с помощью некоторого сложного сценария на A. Однако вы можете использовать этот трюк unix, чтобы сделать все это от A. Вам нужно будет иметь возможность ssh от A до B, и от B до C. Вам понадобится настройка идентификации, так что для этих соединений не требуется пароль. (Вы можете использовать экспедитором тождественных на А для обоих соединений.) Затем запустите что-то вроде этого на:
cat file-on-a | ssh B "ssh C 'cat > file-on-c'"
Это переместит файл от А до С, через B, без сохранения файла на B .
Я делал такие вещи на окнах, прежде чем использовать ssh и cat, которые являются частью Cygwin. Я не знаю, насколько хорошо он будет работать с другими инструментами Windows ...
EDIT: Я должен был сказать слово двум о том, как эта команда работает. Программа ssh предоставляет трубу видов для перемещения данных взад и вперед между локальной и удаленной машиной. Обычно эта трубка подключается к оболочке на удаленном конце и служит для той же цели, что и telnet, за исключением лучшей безопасности. Однако, это труба может использоваться для чего угодно. Утилита sftp использует этот канал для перемещения файлов. Команда ssh может взять команду для выполнения в удаленной системе. Например, ssh B ls
подключится к B, запустит ls и отправит результаты обратно вам. То, что делает вышеприведенная команда, это ssh to B, и попросить B запустить ssh-соединение с C. Это дает нам трубу от A до B от C. Теперь, что делать на обоих концах? Программа cat
считывает файлы и записывает их в стандартную версию. Если имена файлов не указаны, он считывает стандартные значения. cat file-on-a
читает файл на машине A
и записывает его в команду ssh
. cat > file-on-c
считывает данные, отправленные на него, а часть > file-on-c
(благодаря оболочке) записывает это в файл file-on-c
.
Опять же, не уверен, что это вариант в вашей среде. Надеюсь, поможет.
Ваш файл находится на A, и вы хотите ftp его к B, а затем от B sftp до C? – dhchen
Да. Это сценарий, потому что только B может подключить C, а файлы находятся на A. – lamwaiman1988
Можете ли вы писать сценарии на B? – dhchen