ant,从远程机器下载文件集
正如我重新安装ant通过scp任务从远程计算机下载文件时不提供“文件集”属性。 它在从本地机器发送文件时起作用,但在远程机器启动时不起作用。 这是来自文档。 所以在远程机器上,我有一些文件夹和每个目录中的文件加载。 我想要下载所有的文件夹和一个指定的文件。 下载所有文件,然后删除不需要的文件将不会是解决scheme,因为有成千上万的文件。
所以。 如何从远程机器的指定目录中下载所有文件夹(只能在没有内容的磁盘上创build),然后从远程机器的每个目录下载一个指定的文件,并使用ant?
既然你没有指定我会假设你的本地和远程系统是基于Unix的,因此支持rsync和ssh。
更跨平台的解决scheme是具有挑战性的…
例
configurationSSH
生成一个SSH密钥(指定一个空的密码):
ssh-keygen -f rsync
这将生成2个文件,对应于私钥和公钥:
|-- rsync `-- rsync.pub
在远程服务器上安装公钥
ssh-copy-id -i rsync.pub user@remote
testing您现在可以执行无密码login,使用ssh私钥进行身份validation:
ssh -i rsync user@remote
ant
“下载”目标调用rsync来在本地复制远程文件系统树。 如果需要,可以另外指定rsync排除(请参阅rsync doco)。
<project name="rsync" default="download"> <target name="download"> <exec executable="rsync"> <arg line="-avz -e 'ssh -i rsync' user@remote:/path/to/data/ data"/> </exec> </target> <target name="clean"> <delete dir="data"/> </target> </project>