Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

To use Shell method on Active Perl

by radici (Initiate)
on Sep 10, 2008 at 14:29 UTC ( #710372=note: print w/replies, xml ) Need Help??

in reply to Re: A little demo for Net::SSH2
in thread A little demo for Net::SSH2

To use Shell method on Active Perl on windows use:

use warnings;
use strict;
use NET::SSH2;

my $host = ""; # use the ip host to connect
my $user = ""; # your account
my $pass = ""; # your password

my ($len, $buf);

my $ssh2 = Net::SSH2->new();
if ($ssh2->connect($host)) {
if ($ssh2->auth_password($user,$pass)) {
#shell use
my $chan = $ssh2->channel();

$chan->write("ls -a\n");
print $buf while ($len = $chan->read($buf,512)) > 0;

print $buf while ($len = $chan->read($buf,512)) > 0;
} else {
warn "auth failed.\n";
} else {
warn "Unable to connect Host $@ \n";

Replies are listed 'Best First'.
Re: To use Shell method on Active Perl
by mvrk (Initiate) on Feb 09, 2009 at 19:20 UTC
    is it possible to poll the shell for timeouts just like this example:
    $chan->exec("ls -l"); my $poll = { handle => $chan, events => -1 }; while ($ssh2->poll(500, [ $poll ])) { if ($poll->{revents}{out}) { while (<$chan>) { $r=$r.$_; } } if ($poll->{revents}{channel_closed} || $poll->{revent +s}{listener_closed}) { my $exit = $chan->exit_status(); print $r; } } print "timeout\n";
    This works fine for $chan->exec(..), but i need shell to execute more than one command, can someone help me with some code to poll the shell writes and reads for timeouts???

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (2)
As of 2022-08-10 01:27 GMT
Find Nodes?
    Voting Booth?

    No recent polls found