我正在使用JSch API通过SFTP连接到远程服务器。我需要将远程服务器中存在的文件夹的副本复制到同一服务器中。是否有任何方法可以在JSch中执行此类操作?或者善意地给我一个建议去做上述用例。 (我在斯卡拉工作)。
答案 0 :(得分:2)
在广泛的SFTP协议实现(特别是JSch和OpenSSH)中,不支持远程复制文件。
SFTP的copy-file
扩展名,但很少有服务器/客户端支持它
请参阅draft-ietf-secsh-filexfer-extensions-00。
备选方案:
cp
命令通道(不再是SFTP,需要shell访问)答案 1 :(得分:2)
我们不能使用“sftp”频道来完成这项任务而我们必须使用“exec”频道来完成这项任务。使用“exec”通道,我们可以按如下方式执行Linux命令,
val command = "mkdir testDir"
val channelExec: ChannelExec = session.openChannel("exec").asInstanceOf[ChannelExec]
channelExec.setCommand(command);
channelExec.connect
通过以下链接获取更多详细信息
http://www.programcreek.com/java-api-examples/index.php?api=com.jcraft.jsch.ChannelExec
http://www.journaldev.com/246/java-program-to-run-shell-commands-on-ssh-enabled-system
感谢所有参与者