使用ANT通过SCP将文件复制到禁用root的Ubuntu服务器(需要SUDO)

时间:2011-06-25 08:40:46

标签: java eclipse ant ubuntu scp

我想将文件从本地开发环境(Win7,Eclipse,ANT)复制到远程Ubuntu服务器。 Ubuntu服务器默认锁定root,因此所有复制命令都需要sudo cp ...

有没有办法使用ANT轻松完成此操作?我没有看到使用SUDO的任何选项,但我是新手使用ANT。

5 个答案:

答案 0 :(得分:1)

安装cygwin(cygwin.com)或mingw(mingw.org)并从那里使用scp / ssh。在那里设置授权要容易得多(你像往常一样在$ HOME / .ssh /中执行),这样你就不必在ant脚本中传递它。

答案 1 :(得分:1)

当您的本地开发环境在Windows上时,您可以使用Putty Client,一个免费的Windows Telnet / SSH客户端。只需使用命令行工具plink,pscp,.. Putty在Ant中提供并使用它们执行任务。
有关详细信息,请参阅Putty Documentation plink => http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink

答案 2 :(得分:0)

使用SCP任务。这依赖于jsch。我用它来将文件从windows复制到unix。它可能从unix复制到windows(如果windows运行ssh服务器)

答案 3 :(得分:0)

我同意用cygwin / mingw很容易做到这一点, 但如果你想在纯java中做所有事情,这里有一个exec sudo的例子, http://www.jcraft.com/jsch/examples/Sudo.java

答案 4 :(得分:0)

跟随蚂蚁任务怎么样?

<scp  todir="{$username}:{$password}@{$host}:/tmp/x" sftp="true">
  <fileset dir="."/>
</scp>
<sshexec host="{$host}" username="{$username}" password="{$password}"
         trust="yes" command="sudo -S -p '' mv /tmp/x /root/x"
         input="/tmp/input"/>

,其中“/ tmp / input”将包含“sudo”的密码。如果你使用ant-1.8.3, 你可能想使用“inputstring”属性。