我希望能够使用ruby net-ssh gem对Juniper M10i路由器进行更改。但是,发送“配置”后,我无法发送任何配置命令。使用ruby gem net-ssh配置Juniper路由器
例如,登录到通过ssh路由器后,我想发出以下三个命令:
configure
show system
exit
使用net-SSH文库,我已经尝试没有成功如下:
# net-ssh (2.3.0)
require 'net/ssh'
session = Net::SSH.start(host, user, :password => password)
session.exec!('term length 0')
session.exec!('term width 0')
channel = session.open_channel do |ch|
puts "Channel open."
ch.on_close do |ch|
puts "Channel is closing!"
end
ch.on_data do |ch, data|
puts "Data #{data}!!!!!!!!!!"
end
ch.exec "configure" do |ch, success|
puts "FAIL: configure" unless success
end
ch.exec "show system" do |ch, success|
puts "FAIL: show system" unless success
end
ch.exec "exit" do |ch, success|
puts "FAIL: exit" unless success
end
end
session.loop
在执行时,我得到以下的输出:
Channel open.
FAIL: show system
FAIL: exit
Data Entering configuration mode
!!!!!!!!!!
Channel is closing!
所以,我该怎么办正确PAS在“configure”之后是“show system”命令?
解决:
我偶然发现了下面的帖子:https://stackoverflow.com/a/6807178/152852
反正是有避免指定的 “提示”?如果我没有正确指定“提示”,我的脚本将挂起。 – 2013-03-20 17:22:40
您不必指定它带有默认值的提示,并且您可能会匹配默认值。 – 2013-05-02 15:09:33
谢谢,提示性的东西和脚本挂了很久,让我感到困惑不已,直到我看看你的帖子。 +1 – 2014-06-19 07:27:10