From: Peny Swain Date: 2009-02-27T04:57:29+09:00 Subject: Connecting to Cisco device using Ruby Hi, I'm new to Ruby and want to use Ruby for my automation.I'm trying out a small program now.Basically, what I'm trying to do is: 1)Connect to the cisco switch via terminal server which has a public IP address and a port number. (I'm using a fake ip here). 2)Login to the switch giving the right username and password. 3)After login, issue a switch command and get the output back. The below program works if I comment out the "waitfor" but not consistent and other times it fails.Can someone please point out whats the issue here or if possible can someone share the piece of code that does the above task. Thanks s_k require 'net/telnet' require 'socket' localhost = Net::Telnet::new( "Host" => "10.10.10.20", "Port" => 2033, "Binmode" => true, "Output_log" => 'c:\RubyL\output.txt', # "Dump_log" => "dump_log", "Prompt" => /[$%#>:] \z/n, "Telnetmode" => true, "Timeout" => 50, "Waittime" => 30 # "Proxy" => proxy ) { |c| print c } localhost.cmd("\r") {|c| print c } if localhost.waitfor({"Match" => 'vcctest-30-6k>' , "Timeout" => 50}) localhost.cmd("\r enable \r"){|c| print c } localhost.cmd("cisco"){|c| print c } else begin # Adding username and password localhost.waitfor({"Match" => 'Username:' , "Timeout" => 50}) localhost.cmd("cisco"){|c| print c } localhost.waitfor({"Match" => 'Password:' , "Timeout" => 50}) localhost.cmd("cisco"){|c| print c } rescue Exception => e puts e.message retry #Adding enable password localhost.waitfor({"Match" => 'vcctest-30-6k>' , "Timeout" => 50}) localhost.cmd("\r enable \r"){|c| print c } localhost.cmd("cisco"){|c| print c } localhost.cmd("exit"){|c| print c } ensure localhost.close end end -- Posted via http://www.ruby-forum.com/.