Назад | Перейти на главную страницу

Есть ли способ с помощью sftp скопировать файл из удаленной файловой системы в ту же файловую систему?

Есть ли способ с помощью sftp скопировать файл из удаленной файловой системы в ту же файловую систему?

Это значит user@hostname:/path/file.txt к user@hostname:/path/copy_of_file.txt с удаленной машины? Я выполняю удаленное тестирование, и мне нужно скопировать некоторые большие файлы в удаленную систему без зеркалирования файла в тестовой системе или из нее.

Большинство серверов SFTP не поддерживают дублирование удаленного файла.

Есть copy-file расширение протокола SFTP. Но он поддерживается только несколькими серверами SFTP. Например, ProFTPD / mod_sftp и Bitvise WinSSHD. Он не поддерживается самым распространенным SFTP-сервером OpenSSH.


Довольно часто, когда у вас есть доступ по SFTP, у вас также есть доступ к оболочке SSH. Затем вы можете скопировать файлы с помощью команд оболочки (например, cp в * nix).

К сожалению, ответ отрицательный: протокол ftp / sftp не позволяет выгружать удаленную копию.

Не совсем "с использованием sftp", но поскольку sftp использует SSH, нельзя ли просто войти на удаленный сервер с помощью ssh и скопировать файл обычным образом?

Другой альтернативой, которую я бы рассмотрел, было бы использование sshfs, которое позволяет монтировать ваш ssh-каталог как виртуальный диск и использовать на нем такие команды, как cp. Насчет производительности не уверен, но попробовать стоит. Это работает, даже если ваша оболочка отключена чем-то вроде /bin/false, что может быть очень удобно.

Как указано в предыдущих ответах, протокол не поддерживает то, что вам нужно. Вы можете обойти это, загрузив файл, переименовав загруженную копию на своем компьютере, а затем загрузив ее снова. Это громоздко, но если это делается как часть sftp-скрипта, это не имеет значения.

get file.txt
!mv file.txt copy_of_file.txt
put copy_of_file.txt

Так что у меня была аналогичная проблема, и я нашел ваш ответ в Интернете. Несмотря на то, что тема довольно старая, я все же хочу поделиться своим ответом.

Я также не нашел решения этой проблемы с помощью boardtools, но есть стороннее программное обеспечение, которое неплохо справляется с этой задачей на sysax.com. У них есть программное обеспечение для автоматизации для создания сценария, который может обрабатывать SFTP и другие протоколы.

sftp использует в качестве источника или назначения локальную файловую систему. Итак, короткий ответ, нет.