用于自动化远程 telnet 会话的任务。该任务使用嵌套的 <read>
来指示要等待的字符串,以及 <write>
标签来指定要发送的文本。
如果指定了用户名和密码,系统将假定一个通用的 Unix 提示符来等待。此行为可以轻松地覆盖。
注意:此任务依赖于 Apache Ant 分发版中未包含的外部库。有关更多信息,请参阅 库依赖项。
属性 | 值 | 必需 |
---|---|---|
userid | 要在 telnet 服务器上使用的登录 ID。 | 仅当指定了 password 时 |
password | 要在 telnet 服务器上使用的登录密码。 | 仅当指定了 userid 时 |
server | 远程 telnet 服务器的地址。 | 是 |
port | 远程 telnet 服务器的端口号。 | 否;默认为 23 |
initialCR | 如果为 yes,则在连接后发送一个 cr。 |
否;默认为 no |
timeout | 设置一个默认超时时间来等待响应。以秒为单位指定。 | 否;默认情况下没有超时 |
要发送到服务器的命令以及要等待的响应,都描述为嵌套元素。
声明(作为此元素的文本子元素)要等待的字符串。该元素支持 timeout 属性,该属性会覆盖为整个任务指定的任何超时时间。它还有一个 string 属性,它是指定字符串作为文本元素的替代方法。
始终声明一个开始和结束 <read>
元素,以确保在连接就绪之前不会发送语句,并且在最终命令完成之前不会断开连接。
描述要发送到服务器的文本。 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"></HTML></read> </telnet>
要针对 Windows NT telnet 服务使用此任务,您需要将该服务配置为使用经典身份验证而不是 NTLM 协商身份验证。这可以在 Telnet Server Admin 应用程序中完成:选择 显示/更改注册表设置
,然后选择 NTLM
,然后将 NTLM 的值设置为 1。