Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: download as txt and pdf

by stevieb (Canon)
on Dec 01, 2016 at 15:21 UTC ( [id://1177052]=note: print w/replies, xml ) Need Help??


in reply to download as txt and pdf

You're not downloading anything in this case, you're simply printing to your local console the output of a remote device (a Cisco network device, apparently). I've reformatted your code below (so it's easier to read/follow), and added a couple of things that will write your output to a file named "output.txt". Note that this code is untested:

use strict; use warnings; use Net::Ping; use Net::SSH2; my $output_file = 'output.txt'; my $ssh = Net::SSH2->new(); my $username="username"; my $password="password"; my $ip_address = ("ipadderss"); my $ping= Net::Ping->new(); if($ping->ping($ip_address)){ if($ssh->connect($ip_address)){ if($ssh->auth_password($username,$password)){ my $chan = $ssh->channel(); $chan->blocking(1); $chan->shell(); $chan->write("terminal length 0\n"); $chan->write("show cdp neighbor \n"); # open the output file in overwrite mode # (use '>>' if you want to append instead) open my $wfh, '>', $output_file or die $!; while (<$chan>) { # instead of printing to the console, print # to the file handle instead print $wfh $_ if /\bterminal length\b/i .. /^\n*$/ ; } } else { print "auth failed"; } } } else { print "not pinging"; }

update: added the default var after the print to the file handle, per Re^3: download as txt and pdf.

Replies are listed 'Best First'.
Re^2: download as txt and pdf
by ajaykannan (Novice) on Dec 01, 2016 at 18:16 UTC

    thank you for the reply steve. This time got error like this and not printing on my console and reurns empty file. Any help.

    Net::SSH2::Channel=GLOB(0x2a7a444)Net::SSH2::Channel=GLOB(0x2a7a444)Ne +t::SSH2::C hannel=GLOB(0x2a7a444)Net::SSH2::Channel=GLOB(0x2a7a444)Net::SSH2::Cha +nnel=GLOB( 0x2a7a444)Net::SSH2::Channel=GLOB(0x2a7a444)Net::SSH2::Channel=GLOB(0x +2a7a444)Ne t::SSH2::Channel=GLOB(0x2a7a444)Net::SSH2::Channel=GLOB(0x2a7a444)Net: +:SSH2::Cha nnel=GLOB(0x2a7a444)Net::SSH2::Channel=GLOB(0x2a7a444)Net::SSH2::Chann +el=GLOB(0x 2a7a444)Net::SSH2::Channel=GLOB(0x2a7a444)Net::SSH2::Channel=GLOB(0x2a +7a444)Pres s any key to continue . . .

      Sorry, that's my fault. Change this line:

      print $wfh if /\bterminal length\b/i .. /^\n*$/;

      ...to this (the only change is the addition of the default variable ($_) after the file handle variable):

      print $wfh $_ if /\bterminal length\b/i .. /^\n*$/;

        Thank you so much steve that was greate help. And can you tell me how to print in the console also after outfile it. Any help plz

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1177052]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2024-03-28 19:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found