我遇到了与sshsession Ant任务有关的问题。使用sshsession执行远程命令Ant任务
我正在写一个部署脚本BZIP来源时,SCP存档到远程服务器上,然后解压缩在远程服务器上源和正确的目录树中复制文件。
(...)
<bzip2 src="/tmp/${selected.target}.tar" destfile="/tmp/${selected.target}.tar.bz2"/>
<scp file="/tmp/${selected.target}.tar.bz2" todir="[email protected]:/tmp/" keyfile="${user.home}/.ssh/id_rsa" trust="yes" passphrase="thisisasecret"/>
<sshsession host="server" username="user" keyfile="${user.home}/.ssh/id_rsa" trust="yes">
<sequential>
<untar src="/tmp/${selected.target}.tar.bz2" dest="/tmp/prova_untar" compression="bzip2"/>
(copy files)
</sequential>
</sshsession>
(...)
我的问题是在sshsession中指定的任务,因为它们在本地执行,而不是在远程服务器上执行。我想(但显然我错了)在sshsession标签中指定的命令将在我刚刚连接的服务器上执行。我在文档中看过,你可以指定隧道与localtunnel和remotetunnel,但我不知道我正确理解那些隧道的用途。有没有人遇到同样的问题,或有解决方案?我正在使用的Ant版本是1.8.2。 谢谢,
阿尔贝托
我认为你需要使用[sshexec](https://ant.apache.org/manual/Tasks/sshexec.html)。 sshsession似乎是用于连接隧道,而不是用于执行reomote。 – oers 2011-12-14 11:35:03
谢谢oers。我选择了sshsession,因为我需要执行一个远程命令列表,而sshexec只是每次打开一个新会话。 – geezmo 2011-12-14 11:37:17