RUBY 脚本:连接到 Telnet 会话时等待任何输出
Posted
技术标签:
【中文标题】RUBY 脚本:连接到 Telnet 会话时等待任何输出【英文标题】:RUBY script: Wait for ANY output when connected to Telnet session 【发布时间】:2016-12-19 05:45:33 【问题描述】:我正在使用 ruby 脚本向 UT 发送命令。我已成功建立到远程 UT 的 telnet 会话。发送的命令执行一系列操作并给我统计数据。
最初,在成功发送命令后,我设计了 UT 向接收到的脚本发送 OK。我如何接收统计信息?脚本事先不知道命令的输出,每个命令都有自己的字符串。
使用 ruby,我怎样才能告诉 telnet::waitfor() 命令等待这么长时间,但如果 UT 发送了一些东西就会中断?
为了阅读OK,我使用了:
response=@newSession.waitfor("String" => "OK\n", "Timeout" => time_out)
其中,newSession 持有 telnet 会话连接。
@newSession = Net::Telnet::new("Session" => @session,
"Host" => @ut_ip,
"Port" => @port_num,
"Timeout" => 10,
"Prompt" => /[$%#>] \z/n)
我不能使用“匹配”或“提示”,因为我不知道我会得到什么。!帮帮我。。谢谢。
【问题讨论】:
【参考方案1】:让我们阅读Net::Telnet
上的文档:
对于某些协议,可以在创建 Telnet 对象并使用
cmd()
调用时指定一次 Prompt 选项;对于其他人,您必须指定要查找的响应序列作为每个cmd()
调用的匹配选项,或直接调用puts()
和waitfor()
; 对于其他人,您必须使用sysread()
而不是waitfor()
并自己解析服务器响应。
所以,您将自己处理IO
和#preprocess
它。
【讨论】:
以上是关于RUBY 脚本:连接到 Telnet 会话时等待任何输出的主要内容,如果未能解决你的问题,请参考以下文章