2014-01-09 96 views
0

我正在嘗試進行telnet連接併發送強制重新啓動然後終止連接的命令。到目前爲止,我有:發送telnet命令並終止連接而不等待響應

require 'net/telnet' 
host = 192.168.20.11 
connection = Net::Telnet::new("Host" => host) 
connection.login("User") 
connection.cmd("Reboot") 

這工作,達到了我想要它,但該程序然後等待來自該是沒有的,因爲它正在重新啓動,重新啓動命令的反饋,該計劃因此失敗。有沒有辦法可以發送命令,然後關閉連接而無需等待反饋?這將允許我繼續完成整個過程。

回答

0

不幸的是,我沒有看到任何記錄來處理這個問題的方法。你也許可以僞造它是這樣的:

begin 
    connection.cmd("String" => "Reboot", "Timeout" => 0.1) 
rescue # I'm not sure what that will raise, but you should rescue that specific error here 
    nil 
end 

我要問,雖然,有沒有可以用ssh,而不是telnet什麼辦法?

+0

這可能值得一試,可能會有所幫助。至於ssh,我現在只是在研究這個問題,在發佈這個後發現了這個問題。但是從來沒有在ruby中完成ssh,所以我正在通過指令運行。感謝您的建議。 – Maximillion

+0

'net/ssh'比telnet更精緻(更不用提無限更安全)。 – Eugene

+0

你的答案是轟動的。由於我們知道並且救援讓我很好,重新啓動導致連接下降,「救援」並優雅地殺死它。謝謝 – Maximillion