如何使用ant sshexec执行sudo命令

时间:2014-11-21 12:24:52

标签: ant command sudo

我尝试使用像这样的sudo在远程服务器上执行命令

<target name="remote-test">
    <sshexec host="${remote.host}"
        username="${remote.user}"
        password="${remote.pass}"
        trust="true"
        usepty="true"
        command="sudo ls /home/myuser" />
</target>

但是服务器响应如下:

Buildfile: build.xml
remote-test:
  [sshexec] Connecting to 0.0.0.0:22
  [sshexec] cmd : sudo ls /home/myuser
  [sshexec] [sudo] password for myuser:

那么,我如何使用ant来执行带有sudo的远程命令?

谢谢:)

1 个答案:

答案 0 :(得分:4)

是的,也许它可以像这样重复:

How to pass the password to su/sudo/ssh without overriding the TTY?

但无论如何,这个问题的一个解决方案就像在

的最多投票答案中所说的那样
<target name="remote-test-jboss">
    <sshexec host="${remote.host}"
        username="${remote.user}"
        password="${remote.pass}"
        command="echo ${remote.pass}| sudo -S ls /home/myserver" 
        trust="true"
    />
</target>

-S参数用于从标准输入读取。