From: Peter Booth Date: 2009-02-27T05:26:42+09:00 Subject: Re: Connecting to Cisco device using Ruby Did you see http://groups.google.com/group/ruby-talk-google/browse_thread/thread/096cabb08c34182c ? On Feb 26, 2009, at 2:57 PM, Peny Swain wrote: > 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/. >