## RExec

### Description

Task to automate a remote rexec session. Just like the `Telnet` task, it uses nested `<read>` to indicate strings to wait for, and `<write>` tags to specify text to send to the remote process.

Note: This task depends on external libraries not included in the Apache Ant distribution. See Library Dependencies for more information.

You can specify the commands you want to execute as nested elements or via the command attribute, we recommend you use the command attribute. If you use the command attribute, you must use the username and password attributes as well.

### Parameters

Attribute | Values | Required
--- | --- | ---
userid | the login id to use on the remote server. | No
password | the login password to use on the remote server. | No
server | the address of the remote rexec server. | Yes
command | the command to execute on the remote server. | No
port | the port number of the remote rexec server. | No; defaults to 512 in Unix
timeout | set a default timeout to wait for a response, specified in seconds. | No; default is no timeout

### Parameters specified as nested elements

The input to send to the server, and responses to wait for, are described as nested elements.

#### read

declare (as a text child of this element) a string to wait for. The element supports the timeout attribute, which overrides any timeout specified for the task as a whole. It also has a string attribute, which is an alternative to specifying the string as a text element.

It is not necessary to declare a closing `<read>` element like for the `Telnet` task. The connection is not broken until the command has completed and the input stream (output of the command) is terminated.

#### write

describes the text to send to the server. The echo boolean attribute controls whether the string is echoed to the local log; this is true by default.

### Example

A simple example of connecting to a server and running a command.

    <rexec userid="bob" password="badpass" server="localhost" command="ls"/>

The task can be used with other ports as well:

    <rexec port="80" userid="bob" password="badpass" server="localhost" command="ls"/>