Telnet

描述

用于自动化远程 telnet 会话的任务。该任务使用嵌套的 <read> 来指示要等待的字符串,以及 <write> 标签来指定要发送的文本。

如果指定了用户名和密码,系统将假定一个通用的 Unix 提示符来等待。此行为可以轻松地覆盖。

注意:此任务依赖于 Apache Ant 分发版中未包含的外部库。有关更多信息,请参阅 库依赖项

参数

属性 必需
userid 要在 telnet 服务器上使用的登录 ID。 仅当指定了 password
password 要在 telnet 服务器上使用的登录密码。 仅当指定了 userid
server 远程 telnet 服务器的地址。
port 远程 telnet 服务器的端口号。 否;默认为 23
initialCR 如果为 yes,则在连接后发送一个 cr。 否;默认为 no
timeout 设置一个默认超时时间来等待响应。以秒为单位指定。 否;默认情况下没有超时

作为嵌套元素指定的参数

要发送到服务器的命令以及要等待的响应,都描述为嵌套元素。

read

声明(作为此元素的文本子元素)要等待的字符串。该元素支持 timeout 属性,该属性会覆盖为整个任务指定的任何超时时间。它还有一个 string 属性,它是指定字符串作为文本元素的替代方法。

始终声明一个开始和结束 <read> 元素,以确保在连接就绪之前不会发送语句,并且在最终命令完成之前不会断开连接。

write

描述要发送到服务器的文本。 echo 布尔属性控制是否将字符串回显到本地日志;默认情况下为 true

示例

连接到服务器并运行命令的简单示例。这假定用户名提示符为 ogin:,密码提示符为 assword:

<telnet userid="bob" password="badpass" server="localhost">
   <read>/home/bob</read>
   <write>ls</write>
   <read string="/home/bob"/>
</telnet>

此任务可以改写为

<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>

可以在 <telnet> 级别或 <read> 级别指定超时时间。这将连接、发出一个被抑制显示的 sleep 命令,并在退出之前等待 10 秒。

<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>

该任务也可以用于其他端口

<telnet port="80" server="localhost" timeout="20">
   <read/>
   <write>GET / http/0.9</write>
   <write/>
   <read timeout="10">&lt;/HTML&gt;</read>
</telnet>

要针对 Windows NT telnet 服务使用此任务,您需要将该服务配置为使用经典身份验证而不是 NTLM 协商身份验证。这可以在 Telnet Server Admin 应用程序中完成:选择 显示/更改注册表设置,然后选择 NTLM,然后将 NTLM 的值设置为 1。