in reply to Re: Problem with telnet and paging
in thread Problem with telnet and paging

Hi.

Thank you all for your replies. I've looked into the solution with expect - though I don't have the package and the box I'm running the script on is very limited.

The software is indeed Cisco, but my other switches/routes are a different kind (huawei, etc) and they do not have any support for terminal length.

Perhaps my best option would be to use a basic i/o socket, and just read for the '--More--'-line and send a space, or whatnot?

Thanks in advance.

Replies are listed 'Best First'.
Re^3: Problem with telnet and paging
by tbone654 (Beadle) on Dec 24, 2012 at 21:06 UTC

    this works for me on my CISCO's... may be it's the lines...

    $telnet->prompt('/\w+# $/'); $telnet->waitfor($telnet->prompt);
    that make it work... Don't know, just figuring this out myself...
    usage: ./program.pl 10.10.10.77 z.out

    #!/usr/bin/perl use strict; use warnings; use Net::Telnet; my $uri = shift @ARGV or die "IP address needed \n Usage: ./runssh 10. +10.10.77 outputfile"; my $a = shift @ARGV or die "output file needed \n usage: ./runssh 10.1 +0.10.77 outputfile"; my $telnet = new Net::Telnet (Timeout=>15 #,Input_log => "received_data.txt" ,Input_log => $a ); $telnet->open($uri); $telnet->waitfor('/login: /i'); $telnet->print('Place_the_login_here'); $telnet->waitfor('/Password: /i'); $telnet->print('Place_the password_here'); print "Login is successful \n"; $telnet->prompt('/\w+# $/'); $telnet->waitfor($telnet->prompt); $telnet->cmd("terminal length 0"); $telnet->cmd("show interface brief"); $telnet->cmd("sh int desc"); $telnet->cmd("sh flogi data"); $telnet->cmd("sh zone act"); $telnet->waitfor($telnet->prompt); my $out = $telnet->print('exit'); print $out; $telnet->close(); my $fname = "received_data.txt"; open (my $fh, "<", $fname) or die "Can't open"; while (<$fh>) { print if /ip prefix-list/; }