2014-02-15 55 views
0

如果我在文件中只有一个主机,脚本按预期运行。只要我在文件中添加另一个地址,我会得到这个错误。我知道它不喜欢文件中第一个主机末尾的新行字符,这个问题如何缓解?我基本上是寻找脚本来运行主机文件,并为文件中的每个地址或主机名称运行会话。在一个文件中换行的红宝石脚本

'initialize': newline at the end of hostname

File.read('hostfile').each_line do |hostname| 
    session = Net::SSH.start(hostname, @username, :password => @password, :encryption => 'aes256-cbc', :host_key => 'ssh-rsa') 
    cmd_session = Net::SSH::Telnet.new('Session' => session) 
    cmd_session.cmd("en\r#{@enable}") 
    cmd_session.cmd('terminal pager 0') 
    cmd_session.cmd('show threat-detection statistics') { |c| print c } 
    cmd_session.close 
end 
+5

'session = Net :: SSH.start(hostname.strip,@username .....' should get you going。 –

+0

That do it,thanks much !!! –

+1

@Anand,如果您发布该答案而不是评论,那么原始海报可以接受它并且您获得积分 – Satya

回答

1

session = Net::SSH.start(hostname.strip, @username.....

应该让你去。如需进一步参考,请参阅docs