2

Ruby と Telnet を使用してサーバーにログインし、いくつかのコマンドを実行する必要があります。私の実際のスクリプトは次のとおりです。

tn = Net::Telnet::new("Host" => "#{ip}", "Port"  => 23, "Timeout" => 60, 
     "Output_log"=>"output_log.log",
     "Dump_log"=> "dump_log.log",
     "Prompt" => /[#]/ )

tn.cmd("#{USER}\n#{PASS}") { |c| print c }

puts tn.cmd("Conf")
tn.waitfor(/config/) { |str| puts str }
puts tn.cmd("Int fa23")

puts tn.cmd("Shut")
puts tn.cmd("No shut")
puts tn.cmd("Exit")

tn.close

Int fa23出力で文字列「config」が見つかった後、2 番目のコマンド ( ) のみを実行する必要があります。問題は、waitfor が機能していないことです。output_log は次のとおりです。

Trying XX.XX.XX.XX...
Connected to XX.XX.XX.XX.
User Name:username
Password:*************
BOT-SWT-VSAT-AL-...#Conf
BOT-SWT-VSAT-AL-...(config)#

スクリプトは、waitfor タイムアウト エラーで停止します。私は何を間違っていますか?

4

1 に答える 1