Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Uninitalized error for Stdout and Stderr from Net::SSH::Perl

by QM (Parson)
on May 11, 2015 at 10:44 UTC ( [id://1126295]=note: print w/replies, xml ) Need Help??


in reply to Uninitalized error for Stdout and Stderr from Net::SSH::Perl

Not seeing a reply, I'll dive in here. Perhaps you didn't check $stderr and $exit? $stdout may be undefined if there is an error, but your code doesn't check any of those conditions.

Have you tried this from the command line? Perhaps df needs the full pathname?

I can't make any progress on your debug output.

-QM
--
Quantum Mechanics: The dreams stuff is made of

Replies are listed 'Best First'.
Re^2: Uninitalized error for Stdout and Stderr from Net::SSH::Perl
by waytoperl (Beadle) on May 11, 2015 at 16:03 UTC

    Updated code to check $stderr and $exit. $stdout and $stderr have undefined. Do I need to initialize $STDOUT to $stdout

    Output from the updated code

    #!/usr/bin/env perl -w use strict; use warnings; use Data::Dumper; use Net::SSH::Perl; ###################################################################### +# # LOGIN DETAILS ###################################################################### +# my $server = "10.255.255.10"; my $username = "username"; my $password = "password"; # Log into server print "Creating ssh object... "; my $ssh = Net::SSH::Perl->new($server); # Error check this print "done\n"; print "Logging into server... "; $ssh->login($username, $password); # Error check this print "done\n"; # Check df my $command = 'df'; print "Running command ($command)... "; my ($stdout, $stderr, $exit) = $ssh->cmd($command); # Check output print "done\n"; print "$stdout\n"; print "$stderr\n"; print "$exit\n"; $ssh->cmd("exit");
    [root@server-01 New_script]#perl New_script.pl Creating ssh object... done Logging into server... done Running command (df)... done Use of uninitialized value $stdout in concatenation (.) or string at w +lgw2.pl line 29. Use of uninitialized value $stderr in concatenation (.) or string at w +lgw2.pl line 30. 0
      As the login seems to be successful, it appears that the command is not returning any output, and is exiting "normally".

      My own foray into this kind of script just calls ssh through a backtick or qx//, like so:

      my @result = qx/$ssh ${user}\@${host} '$cmd'/;

      which isn't as easy to separate the various results. I also have pre-shared key login, so there's no password prompt. And that doesn't help you.

      I'll see if I can attract more attention to this.

      -QM
      --
      Quantum Mechanics: The dreams stuff is made of

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2024-04-24 04:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found