You don't have \n on the end of ENABLE, but I don't know if that makes
a difference...

--Jeremy

On Dec 14, 2007 12:27 PM, jackster the jackle <contact / thirdorder.net> wrote:
> Hi Ruby Forum,
>
> I have some code that will login to my cisco router and run a basic
> command.
>
> The problem is, I need to get into enable mode to run additional
> command. Getting into enable mode requires typing "enable", waiting for
> the prompt "Password: " then entering another password.
>
> This code works and gets me into the router but not in enable mode:
>
> #!/usr/local/bin/ruby
>
> require 'net/telnet'
>
> CISCO = "172.31.1.1" #Enter the IP address here
> USER = "jsmith" #Enter username here
> PASS = "mypassword" #Enter password here
> ENABLE = "myenablepass" #Enter enable password here
>
> tn = Net::Telnet::new("Host" => CISCO,
> "Timeout" => 5,
> "Prompt" => /Username/ )
>
> tn.cmd("\n#{USER}") { |c| print c }
> tn.cmd(PASS) { |c| print c }
> tn.cmd("sh mod\n") { |c| print c }
>
> Instead of sending the command "sh mod\n" as shown above, I want to get
> into enable mode and send the command "sh run\n".
>
> The problem is, I get to the password prompt but the router is not
> taking my password for some reason and I know the password is good.
>
> Here is the added code that I'm having trouble with:
>
> tn = Net::Telnet::new("Host" => CISCO,
> "Timeout" => 5,
> "Prompt" => /Username: / )
>
> tn.cmd("\n#{USER}") { |c| print c }
> tn.cmd(PASS) { |c| print c }
> tn.cmd("enable\n") { |c| print c }
> tn.waitfor(/Password: /)
> tn.cmd(ENABLE) { |c| print c }
> tn.cmd("sh run\n") { |c| print c }
>
> Any ideas to get me into enable mode here would be greatly appreciated.
> thanks
> jackster
> --
> Posted via http://www.ruby-forum.com/.
>
>



-- 
http://www.jeremymcanally.com/

My books:
Ruby in Practice
http://www.manning.com/mcanally/

My free Ruby e-book
http://www.humblelittlerubybook.com/

My blogs:
http://www.mrneighborly.com/
http://www.rubyinpractice.com/