in reply to Re^4: Net::Telnet::Cisco - command timed-out error
in thread Net::Telnet::Cisco - command timed-out error

Ah. I See. So you would have to send a "\n" or "\r" forst, and only then do the ->login().

The author of Net::Telnet::Cisco seems to have anticipated this problem, there is a send_wakeup setting. You could modify the code from your OP to

my $cs = Net::Telnet::Cisco->new( Host => '10.10.1.2', Port => '7012', + Send_wakeup => 'connect', Dump_Log => 'cisco.log', );
(don't know, wether you need to set the prompt, you'll see for yourself)

The effect is, that, upon connecting, a newline is sent upon connection. Perhaps this works even with devices that don't need it.

Replies are listed 'Best First'.
Re^6: Net::Telnet::Cisco - command timed-out error
by ArifS (Beadle) on Oct 24, 2014 at 13:52 UTC
    With the Send_wakeup => 'connect', added my script times out and I get the following error-
    bad named parameter "Send_wakeup" given to Net::Telnet::Cisco::new() a +t
    Please let me know.

      Sorry, I know this module only from its doc and source, because we don't have that much Ciscos.

      The message "bad named parameter" isn't there, but in Net::Telnet. Obviously, Net::Telnet::Cisco->new gives all its input parameters to Net::Telnet->new without cleaning out its own extensions.
      Perhaps the error checking in Net::Telnet->new was put in later...

      Anyway, if you leave it out, and put instead
      $cs->send_wakeup('connect'); $cs->login(...);
      at least this doesn't give the error message.

      Update: tried it at work (no Cisco at home :-)), our cisco doesn't need send_wakeup, but works also with it. I tested using the following code

      use Net::Telnet::Cisco; my ($host, $user, $pass) = qw(10.10.1.1 user pass); my $cs = Net::Telnet::Cisco->new( Host => $host, Dump_Log => 'cisco.log', Prompt => '/(?m:^\W?[\w\/\d.:-]+[>#])/', ); $cs->send_wakeup('connect'); $cs->login( $user, $pass ); my @cmd_output = $cs->cmd( 'show ver | inc Configuration' ); print @cmd_output; $cs->close;
        Thank you for the update. I just tried as following-
        use Net::Telnet::Cisco; my ($host, $user, $pass) = qw(10.10.1.1 user pass); my $cs = Net::Telnet::Cisco->new( Host => $host, Port => $port, Dump_Log => 'cisco.log', Prompt => '/(?m:^\W?[\w\/\d.:-]+[>#])/', ); $cs->send_wakeup('connect'); $cs->login( $user, $pass ); print "username and password sent\n"; my @cmd_output = $cs->cmd( 'show cdp nei' ); print @cmd_output; $cs->close;
        But, I am getting the following error-
        username and password sent command timed-out at c:\temp\dir6483.tmp\sendWake.pl line 28 Press any key to continue . . .
        line 28: my @cmd_output = $cs->cmd( 'show cdp nei' );

        After that when I use putty to access, I can see that it's displaying my "show cdp nei" and didn't ask for authentication, as I have already provided thru the script. However, it didn't display in the script output and gave me that error.

        Please let me know.

        ##UPDATE:
        never mind... it's working. I just had to add 'term leng 0' first. Thank you all.