有没有人尝试在 JUNOS 路由器中使用 ruby 和 net/ssh 和 net/ssh/telnet gems 来执行多个命令,你必须进入配置模式?它从不想接受配置命令,我不知道为什么。
这是我的代码:
def exec_router(host_type, commands)
puts "commands: #{commands}"
output = ""
ssh = Net::SSH.start(HOST_MAP[host_type], QA_USER, :password => QA_USER_PASSWORD)
t = Net::SSH::Telnet.new("Session" => ssh, "Prompt" => /.+@.+>/, "Output_log" => "/tmp/test.outputi")
commands.each { |command| output << t.cmd(command) }
puts output
t.close
ssh.close
end
这是它产生的输出:
commands: ["configure", "show policy-options prefix-list greautomation-676872"]
configure
^
unknown command.
{master:member0-re0}
qa@c1.lab5> show policy-options
^
syntax error, expecting <command>.
qa@c1.lab5> 显示策略选项前缀列表 ^ 语法错误,应为 . qa@c1.lab5> 显示 policy-optionsprefix-listgreautomation-676872 ^ 语法错误,期待 .
我知道我的 ssh/telnet 工作正常,因为我可以用 t.cmd('?') 替换遍历命令数组的块,并且我得到了没有错误的预期输出。
我的 Junos 版本是 15.1F6-S3.8,我使用的是 ruby 2.3.0。
提前致谢
克雷格