linux - ant scp 任务在 Linux 上挂起

标签 linux ant jsch

我遇到了一个问题,ant scp 任务在文件集复制期间挂起。任务是:

<scp file="${usr}:${pwd}@${hst}:${dir}/*" todir="${to}" trust="true"/>

它成功复制了许多文件,然后挂起。

请注意,它复制的主机是 localhost,但这应该没有区别。

我还使用相同的 ant 脚本将文件从同一台 Linux 主机复制到 Windows 计算机,并且没有任何问题。

谷歌搜索显示,2007年左右曾出现过类似问题,http://www.symphonious.net/2007/10/23/ant-scpssh-task-hangs-or-never-disconnects/ ,但是他们提供的升级到最新版本的ant(或降级jsch)的解决方案并不能解决我的问题。 (https://issues.apache.org/bugzilla/show_bug.cgi?id=41090中也提到了这个缺陷)

我使用过 ANT 1.8.2、ANT 1.7.1 和 ANT 1.6.5,它们都有这个问题。 我使用的是 jsch 0.1.44,但即使使用更高版本的 jsch,我也会遇到这个问题。

有什么想法吗?

最佳答案

找到了解决我的问题的解决方法。这是使用 scp 任务的 sftp="true"属性,如下所示:

<scp file="${usr}:${pwd}@${hst}:${dir}/*" todir="${to}" trust="true" sftp="true"/>

关于linux - ant scp 任务在 Linux 上挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6895547/

相关文章:

java - 使用 JSch 执行的命令的行为与 SSH 终端不同(绕过 "yes/"no 的确认提示消息)

linux - 如何将参数传递给 shell 脚本

linux - 当我尝试链接测试文件时出现文件错误

linux - 使用变量(这是一个 IP 地址)作为关联数组的键会产生错误

linux - Ant 中的 Exec 命令只执行第一个命令

java - 将 Portlet 部署自动化到 WebSphere Portal Server 6.1

java - JUnit Ant 任务不会输出到屏幕

java - java程序如何穿越防火墙

linux - terraform 的问题,为什么在尝试规划特定资源时双引号被忽略

java - JSchException : Algorithm negotiation fail