- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
"#{ip}", "Port" => 23, "T-6ren">
我需要使用 Ruby 和 Telnet 登录服务器并执行一些命令。我的实际脚本是:
tn = Net::Telnet::new("Host" => "#{ip}", "Port" => 23, "Timeout" => 60,
"Output_log"=>"output_log.log",
"Dump_log"=> "dump_log.log",
"Prompt" => /[#]/ )
tn.cmd("#{USER}\n#{PASS}") { |c| print c }
puts tn.cmd("Conf")
tn.waitfor(/config/) { |str| puts str }
puts tn.cmd("Int fa23")
puts tn.cmd("Shut")
puts tn.cmd("No shut")
puts tn.cmd("Exit")
tn.close
在输出中找到字符串“config”后,我必须只执行第二个命令 (Int fa23
)。问题是 waitfor 不工作。这是输出日志:
Trying XX.XX.XX.XX...
Connected to XX.XX.XX.XX.
User Name:username
Password:*************
BOT-SWT-VSAT-AL-...#Conf
BOT-SWT-VSAT-AL-...(config)#
脚本因等待超时错误而停止。我做错了什么?
最佳答案
请在 Net::Telnet::new 之后添加 waitfor
您应该等待连接建立(这在创建 Telnet 实例时发生),然后每次发送下一个命令之前等待服务器响应。
localhost = Net::Telnet::new("Host" => "*****",
"Port" => ***,
"Timeout" => 10,
"Prompt" => /[$%#>] \z/n)
localhost.waitfor(/USER/) {
localhost.cmd("****") {
localhost.waitfor(/PASS/) {
|c| print c
# your next commands
...
# localhost.close
}
}
}
这里的关键是确保在响应之前您已经收到来自服务器的所有数据包(直到收到 EOF)。然后有时,甚至消耗/等待空格字符也可能算在内(取决于您的 telnet 服务器的设计方式)。然后,确保为您的匹配项设置正确的正则表达式。
关于 ruby 和远程登录 : waitfor doesnt work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17046915/
我从我认为是问题开始的地方开始: 我将一个 mysql 数据库从在线服务器导出到本地服务器,这样我就可以毫无风险地对其进行测试。 但是在 XAMPP 中我无法重新启动 MySql 模块。 11:02:
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭
我想要的是我的消息框应该在其标题栏中显示我的应用程序的图标(或任何其他图标),但它没有,为什么不呢? 最佳答案 MessageBox in WPF只是标准 MessageBox in user32.d
我希望在一个事务 block 中执行一些插入查询,如果有任何错误,所有插入都将被回滚。 为此,我正在使用 MySQL 数据库和 Spring TransactionManager。表类型也是 Inno
所以我试图通过一个简单的jsp页面在netbeans的java应用程序中访问我的底层数据库: select isbn, title, quantity, price from dbsamp
我正在用 proguard 优化一个 jar,但优化后它崩溃了。这是我的 proguard 任务: -injars ${dist}/${jarname}
我的mysql有问题,我试着运行这句话 CREATE TABLE IF NOT EXISTS comunidad_estado ( id_comunidad_estado int(11) NOT
我在 fragment 而不是 Activity 中尝试了这段代码,但它不起作用: this.listView = (ListView) findViewById(R.id.listView_easy
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-top
我有一个 div,它是一个 parent 的 child 。 text-align:justify 对它不起作用。 子 HTML: По легенде, у расположенного на це
我需要使用 Ruby 和 Telnet 登录服务器并执行一些命令。我的实际脚本是: tn = Net::Telnet::new("Host" => "#{ip}", "Port" => 23, "T
我有这个奇怪的错误, 当我调用 $element_attrs = $element -> attributes(); 时,我收到一条通知,指出属性方法不存在: Call to undefined me
我使用以下代码: TreeNode i = treeView1.SelectedNode; RefillTree(); //clears the tree and rebuilt it again.
我正在使用以下方法来检测有人来电时的来电显示。 在加载表单时,我设置了以下代码: this.serialPort1.PortName = "COM3"; this.serialPort1.BaudRa
I don’t understand what the problem is, OpenSeaDragon doesn’t display the slide that I take from
我正在使用 Ubuntu 14.04 这是我第一次编写 bash 脚本。 这里是: #!/bin/bash ${file}="/home/isra/files/mongoTemp.json
我已经学习了一些关于学习 CodeIgniter 框架的在线教程。我已经尝试创建登录和注册功能,一切都应该正常工作,但是在我提交注册表单后它会回复我这个错误。 A Database Error Occ
我正在尝试将大量文件(.pc pro*c 代码、c 代码和 .h 文件编译为 exe)到一个 exe 中。 示例代码。 请注意,制表符是相应放置的。但在发帖时已将其删除。 抱歉,尝试修复缩进..但是现
我想使用 ngroute 模块在同一页面中使用不同主题路由我的应用程序,使用此示例: Angular JS Views
我想伪造一个不存在的实现接口(interface)的新类 这可能吗? 比如我有一个接口(interface) public interface Worker { boolean execute
我是一名优秀的程序员,十分优秀!