SCP

Description

The com.dovetail.ant.ssh.Scp task is an enhanced version of the optional Scp task, based on Ant version 1.9.8. It includes the following enhancements:

Copies a file or FileSet to or from a (remote) machine running an SSH daemon. FileSet only works for copying files from the local machine to a remote machine.

Note: This task is used as an antlib with external libraries that are distributed with the Dovetail ant-ssh distribution.

See also the ssh exec task, the ssh session task, and the ssh sftp task

Parameters

Attribute Description Required
file The file to copy. This can be a local path or a remote path of the form user[:password]@host:/directory/path. :password can be omitted if you use key based authentication or specify the password attribute. The way remote path is recognized is whether it contains @ character or not. This will not work if your localPath contains @ character. Yes, unless a nested <fileset> element is used.
localFile This is an alternative to the file attribute. But this must always point to a local file. The reason this was added was that when you give file attribute it is treated as remote if it contains @ character. This character can exist also in local paths. since Ant 1.6.2 Alternative to file attribute.
remoteFile This is an alternative to the file attribute. But this must always point to a remote file. since Ant 1.6.2 Alternative to file attribute.
todir The directory to copy to. This can be a local path or a remote path of the form user[:password]@host:/directory/path. :password can be omitted if you use key based authentication or specify the password attribute. The way remote path is recognized is whether it contains @ character or not. This will not work if your localPath contains @ character. Yes
localTodir This is an alternative to the todir attribute. But this must always point to a local directory. The reason this was added was that when you give todir attribute it is treated as remote if it contains @ character. This character can exist also in local paths. since Ant 1.6.2 Alternative to todir attribute.
localTofile Changes the file name to the given name while receiving it, only useful if receiving a single file. since Ant 1.6.2 Alternative to todir attribute.
remoteTodir This is an alternative to the todir attribute. But this must always point to a remote directory. since Ant 1.6.2 Alternative to todir attribute.
remoteTofile Changes the file name to the given name while sending it, only useful if sending a single file. since Ant 1.6.2 Alternative to todir attribute.
port The port to connect to on the remote host. No, defaults to 22.
trust This trusts all unknown hosts if set to yes/true.
Note If you set this to false (the default), the host you connect to must be listed in your knownhosts file, this also implies that the file exists.
No, defaults to No.
knownhosts This sets the list of known hosts file(s) to use to validate the identity of the remote host. This must be a SSH2 format file. SSH1 format is not supported. The special file name "putty" may be used to refer to PuTTY host keys stored in the Windows registry. The first known hosts file in this list will be updated with a new host key if trust=yes. A mismatched host key will never be replaced with a new key. No, defaults to "putty,${user.home}/.ssh/known_hosts" on Windows if PuTTY is installed or "${user.home}/.ssh/known_hosts" otherwise. On non-Windows systems, the default is "${user.home}/.ssh/known_hosts,/etc/ssh_known_hosts". Dovetail enhancement
failonerror Whether to halt the build if the transfer fails. No; defaults to true.
password The password. No.
useAgent Determines whether an ssh-agent or PuTTY agent (Windows) will be used for user key creditials. No, defaults to true if an SSH key agent is available. Dovetail enhancement, requires jsch agentyproxy and jna library jars
allowPasswordPrompt If password is not set, set this to No to prevent a password prompt. No, defaults to true if a password or keyfile or agent key is not supplied. Dovetail enhancement
keyfile Location of the file holding the private key. Yes, if you are using key based authentication.
passphrase Passphrase for your private key. No, defaults to an empty string.
verbose Determines whether SCP outputs verbosely to the user. Currently this means outputting dots/stars showing the progress of a file transfer. since Ant 1.6.2 No; defaults to false.
sshVerbose Determines whether verbose messages from the JSch ssh library are output. Dovetail enhancement No; defaults to false.
sftp Determines whether SCP uses the sftp protocol. The sftp protocol is the file transfer protocol of SSH2. It is recommended that this be set to true if you are copying to/from a server that doesn't support scp1. Instead of using this, use the Dovetail SFTP task No; defaults to false.
preserveLastModified Determines whether the last modification timestamp of downloaded files is preserved. It only works when transferring from a remote to a local system and probably doesn't work with a server that doesn't support SSH2. since Ant 1.8.0 No; defaults to false.
filemode A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion. Only applies to uploaded files. Note the actual permissions of the remote file will be governed by this setting and the UMASK on the remote server. Default is 644. since Ant 1.9.5. No. Defaults to local file permissions if not running on Windows.
dirmode A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion. Only applies to uploaded dirs. Note the actual permissions of the remote dir will be governed by this setting and the UMASK on the remote server. Default is 755. since Ant 1.9.5. No
serverAliveIntervalSeconds Sets a timeout interval in seconds after which if no data has been received from the server, the task will send a message through the encrypted channel to request a response from the server. since Ant 1.9.7 No, the default is 0, indicating that these messages will not be sent to the server
serverAliveCountMax The number of server alive messages which may be sent without receiving any messages back from the server. Only used if serverAliveIntervalSeconds is not 0. since Ant 1.9.7 No, defaults to 3
compressed Whether to enable compression during transfer. since Ant 1.9.8 No, defaults to false

Parameters specified as nested elements

fileset or resource collections

FileSets or Resource Collections are used to select groups of files to copy. To use a fileset or a resource collection, the todir attribute must be set.

Prior to Ant 1.9.7 only <fileset> has been supported as a nested element.

Examples

See Ant Scp Task for examples on using the original task.

This task is packaged in an Antlib. To run, you must point to the Dovetail ant-ssh library jars:

   ant -lib /path/to/ant-ssh/lib

Copy a set of files to a directory.

  <project name="test1" 
	xmlns:ssh="antlib:com.dovetail.ant.ssh">
  ...	
  <ssh:scp todir="user@somehost:/home/chuck">
    <fileset dir="src_dir">
      <include name="**/*.java"/>
    </fileset>
  </ssh:scp>

An ssh-agent will be used for authentication if available, otherwise a password will be prompted.