您的位置:首页 > 其它

Ant内置任务之scp

2018-03-26 21:34 579 查看

一、概述

        scp是Ant1.6引入的内置任务,用于复制文件或文件集到运行ssh守护进程的远程计算机上,或者从远程计算机上复制文件到本地。此任务需要外部包jsch.jar版本为0.1.42+。

二、属性

        file:要拷贝的文件,可以是本地路径或者user[:password]@host:/directory/path格式的远程路径。如果使用基于密钥的身份验证或者指定password属性,则:password可以省略。远程路径是通过是否包含@符号来识别的,如果本地路径包含@字符则此任务无法正常运行。

        localfile:ant1.6.2起,file属性的替代方法,总是指向本地文件,添加此属性的原因是,当赋值file属性时,如果包含@字符就会视为远程路径。但是@也可以出现在本地路径中。也就是说当本地路径中包含@字符时,可以使用此属性来避免将本地路径识别为远程路径。

        remotefile:ant1.6.2起,file属性的替代方法,总是指向远程文件。

        todir:拷贝到的目录,可以是本地路径或者user[:password]@host:/directory/path格式的远程路径。如果使用基于密钥的身份验证或者指定password属性,则:password可以省略。远程路径是通过是否包含@符号来识别的,如果本地路径包含@字符则此任务无法正常运行。

        localtodir:ant1.6.2起,todir属性的替代方法,总是指向本地目录,添加此属性的原因是,当赋值todir属性时,如果包含@字符就会视为远程目录。但是@也可以出现在本地目录路径中。也就是说当本地目录路径中包含@字符时,可以使用此属性来避免将本地目录路径识别为远程目录路径。

        localtofile:ant1.6.2起,todir属性的替代方法,在接收文件时将文件名更改为指定的名称,只有在接收单个文件时有效。

        remotetodir:ant1.6.2起,todir属性的替代方法,总是指向远程目录。

        remotetofile:ant1.6.2起,todir属性的替代方法,发送文件时将文件名称更改为指定的名称,只有在发送单个文件时有效。

        post:连接到远程主机的端口,默认为22。

        trust:如果设置为true/yes,则信任所有未知主机。如果设置为false,则连接的主机必须在knownhosts中列出,默认为false。

        knownhosts:设置用于验证远程主机标识的已知主机文件,文件必须是ssh2格式的。默认为${user.home}/.ssh/known_hosts。

        failonerror:如果命令未成功完成,是否停止构建,默认为true。

        password:密码,如果使用的是基于密钥的身份验证,或者在file或todir属性中设置了密码,则不需此属性。

        keyfile:保存私钥的文件的位置,如果使用基于密钥的认证,则必须设置此属性。

        passphrase:私钥的密码。默认为空字符串。

        verbose:ant1.6.2起,是否输出详细的信息给用户,默认为false。

        sftp:ant1.7起,scp是否使用sftp协议,sftp 协议是 SSH2 的文件传输协议。如果与不支持scp1的服务器进行文件拷贝建议将此属性设置为true。

        preserveLastModified:ant1.8起,是否保留下载的文件的最后修改时间的时间戳,只有从远程传输到本地系统时有效并且可能无法与不支持ssh2的服务器工作,默认为false。

        scp支持嵌套fileset元素来选择要拷贝的文件,使用fileset元素,必须设置todir属性。

三、简单示例

<project>
<!--<scp trust="true" file="build.xml" todir="root:root@192.168.0.112:/root/test.xml"/> -->
<scp trust="true" todir="result" file="root:root@192.168.0.112:/root/*"/>
</project>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ant任务 ant task scp