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

Re: Handling STDERR when using Net::OpenSSH

by kevbot (Priest)
on Aug 21, 2013 at 04:45 UTC ( #1050277=note: print w/replies, xml ) Need Help??

in reply to Handling STDERR when using Net::OpenSSH

The Capture::Tiny module can be used to capture STDERR. For example,
#!/usr/bin/env perl use strict; use warnings; use Net::OpenSSH; use Capture::Tiny ':all'; my $host = 'broken'; my $ssh; my ($stdout, $stderr, @result) = capture { $ssh = Net::OpenSSH->new($host); }; print "Captured STDERR: $stderr\n"; $ssh->error and die "Couldn't establish SSH connection: ". $ssh->error +; exit;
gives the output:
Captured STDERR: ssh: Could not resolve hostname broken: nodename nor +servname provided, or not known Couldn't establish SSH connection: unable to establish master SSH conn +ection: master process exited unexpectedly at line 15.

Replies are listed 'Best First'.
Re^2: Handling STDERR when using Net::OpenSSH
by mds (Novice) on Aug 21, 2013 at 13:39 UTC
    Thank you kevbot and jandrew. I could not get $SIG{__WARN__} to provide any satisfaction in captureing STDERR. Capture::Tiny worked very well. Just to be sure and to keep it from being confused with the openssh capture function I used Capture::Tiny::capture
    my $ssh; my $LOGIN_TIMEOUT = 60; my ( $ssh_stdout, $ssh_stderr, @ssh_result ) = Capture::Tiny::capture { $ssh = Net::OpenSSH->new( $ip_address, batch_mode => 1, timeout => $LOGIN_TIMEOUT, kill_ssh_on_timeout => 1, master_opts => [ -o => "StrictHostKeyChecking=no", -o => "ConnectTimeout=60", -o => "ForwardX11=no" ], ); };
    Thank you very much.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1050277]
marto waves
[Marshall]: marto howdy!
[marto]: Hey there

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2018-03-18 12:51 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (230 votes). Check out past polls.