2
我正在嘗試使用ruby通過telnet登錄到Windows機器並使用dos命令行ftp將一些文件拖過來進行一些基本腳本。當我手動執行這些操作時,一切都會順利進行,但是當我通過ruby嘗試時,我在登錄調用中遇到了錯誤。Ruby腳本 - 登錄時掛起的Telnet
這裏是全部我的測試程序:
require 'net/telnet'
tn = Net::Telnet::new("Host"=>"xxx.xxx.xxx.xxx", "Timeout"=>25, "Output_log"=>"output_log.log", "Dump_log"=> "dump_log.log", "Prompt"=>"C:.*>")
tn.login("administrator", "xxxxxxx") {}
tn.cmd('dir')
exit
output_log的內容不出賣任何東西爲錯誤:
Trying 208.10.202.187...
Connected to 208.10.202.187.
Welcome to Microsoft Telnet Service
login: administrator
password:
*===============================================================
Welcome to Microsoft Telnet Server.
*===============================================================
C:\Documents and Settings\Administrator>
同樣爲它具有非常相似,但笨拙的dump_log格式化的內容。當我運行該程序就坐在了一段時間,然後輸出以下錯誤:
PS C:\code\tools\deployment> ruby test.rb
C:/Ruby/lib/ruby/1.8/net/telnet.rb:551:in `waitfor': timed out while waiting for more data (Timeout::Error)
from C:/Ruby/lib/ruby/1.8/net/telnet.rb:685:in `cmd'
from C:/Ruby/lib/ruby/1.8/net/telnet.rb:730:in `login'
from test.rb:3
這使我懷疑的telnet類是不能識別的命令提示符。我已經嘗試了Prompt參數的幾個不同的正則表達式字符串,包括默認和沒有任何幫助。
哦真棒,感謝拉里現在的偉大工程 – 2009-06-08 21:36:59