我尝试使用像这样的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的远程命令?
谢谢:)
答案 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参数用于从标准输入读取。