| <!DOCTYPE html> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| https://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <html lang="en"> |
| |
| <head> |
| <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> |
| <title>Telnet Task</title> |
| </head> |
| |
| <body> |
| |
| <h2 id="telnet">Telnet</h2> |
| <h3>Description</h3> |
| <p>Task to automate a remote telnet session. The task uses nested <code><read></code> to |
| indicate strings to wait for, and <code><write></code> tags to specify text to send.</p> |
| |
| <p>If you do specify a userid and password, the system will assume a common Unix prompt to wait |
| on. This behavior can be easily overridden.</p> |
| <p><strong>Note</strong>: This task depends on external libraries not included in the Apache Ant |
| distribution. See <a href="../install.html#librarydependencies">Library Dependencies</a> for more |
| information.</p> |
| |
| <h3>Parameters</h3> |
| <table class="attr"> |
| <tr> |
| <th scope="col">Attribute</th> |
| <th scope="col">Values</th> |
| <th scope="col">Required</th> |
| </tr> |
| <tr> |
| <td>userid</td> |
| <td>the login id to use on the telnet server.</td> |
| <td>Only if <var>password</var> is specified</td> |
| </tr> |
| <tr> |
| <td>password</td> |
| <td>the login password to use on the telnet server.</td> |
| <td>Only if <var>userid</var> is specified</td> |
| </tr> |
| <tr> |
| <td>server</td> |
| <td>the address of the remote telnet server.</td> |
| <td>Yes</td> |
| </tr> |
| <tr> |
| <td>port</td> |
| <td>the port number of the remote telnet server.</td> |
| <td>No; defaults to <q>23</q></td> |
| </tr> |
| <tr> |
| <td>initialCR</td> |
| <td>send a cr after connecting if <q>yes</q>.</td> |
| <td>No; defaults to <q>no</q></td> |
| </tr> |
| <tr> |
| <td>timeout</td> |
| <td>set a default timeout to wait for a response. Specified in seconds.</td> |
| <td>No; default is no timeout</td> |
| </tr> |
| </table> |
| <h3 id="nested">Parameters specified as nested elements</h3> |
| <p>The commands to send to the server, and responses to wait for, are described as nested |
| elements.</p> |
| |
| <h4>read</h4> |
| |
| <p>declare (as a text child of this element) a string to wait for. The element supports |
| the <var>timeout</var> attribute, which overrides any timeout specified for the task as a whole. It |
| also has a <var>string</var> attribute, which is an alternative to specifying the string as a text |
| element.</p> |
| <p><em>Always declare an opening and closing <code><read></code> element to ensure that |
| statements are not sent before the connection is ready, and that the connection is not broken before |
| the final command has completed.</em></p> |
| |
| <h4>write</h4> |
| <p>describes the text to send to the server. The <var>echo</var> boolean attribute controls whether |
| the string is echoed to the local log; this is <q>true</q> by default.</p> |
| |
| <h3>Examples</h3> |
| <p>A simple example of connecting to a server and running a command. This assumes a prompt |
| of <q>ogin:</q> for the userid, and a prompt of <q>assword:</q> for the password.</p> |
| |
| <pre> |
| <telnet userid="bob" password="badpass" server="localhost"> |
| <read>/home/bob</read> |
| <write>ls</write> |
| <read string="/home/bob"/> |
| </telnet></pre> |
| |
| <p>This task can be rewritten as:</p> |
| <pre> |
| <telnet server="localhost"> |
| <read>ogin:</read> |
| <write>bob</write> |
| <read>assword:</read> |
| <write>badpass</write> |
| <read>/home/bob</read> |
| <write>ls</write> |
| <read>/home/bob</read> |
| </telnet></pre> |
| |
| <p>A timeout can be specified at the <code><telnet></code> level or at |
| the <code><read></code> level. This will connect, issue a <kbd>sleep</kbd> command that is |
| suppressed from displaying and wait 10 seconds before quitting.</p> |
| |
| <pre> |
| <telnet userid="bob" password="badpass" server="localhost" timeout="20"> |
| <read>/home/bob</read> |
| <write echo="false">sleep 15</write> |
| <read timeout="10">/home/bob</read> |
| </telnet></pre> |
| |
| <p>The task can be used with other ports as well:</p> |
| <pre> |
| <telnet port="80" server="localhost" timeout="20"> |
| <read/> |
| <write>GET / http/0.9</write> |
| <write/> |
| <read timeout="10">&lt;/HTML&gt;</read> |
| </telnet></pre> |
| |
| <p>To use this task against the Windows NT telnet service, you need to configure the service to use |
| classic authentication rather than NTLM negotiated authentication. This can be done in the Telnet |
| Server Admin app: select <q>display/change registry settings</q>, then <q>NTLM</q>, then set the |
| value of NTLM to 1.</p> |
| |
| </body> |
| </html> |