hi zentara.. thanks for your reply.. first of all, I want to make ssh from a windows machine to windows machine. So, here, I think, I can't run my commands in background. I tried one example using shell method you described but it was not working. It got stuck meanwhile executing it. Please see below snippet of code-
my $ssh2 = Net::SSH2->new();
$ssh2->debug(1);
if ($ssh2->connect($host)) {
if ($ssh2->auth_password($user,$pass)) {
#shell use
print "connetced\n";
my $chan = $ssh2->channel() and print "channel created\n";
$chan->shell() and print "shell method called\n";
$chan->blocking(1) and print "blocking set ot 1\n";
$chan->write("dir\n") and print "dir fired\n";
select(undef,undef,undef,0.2) and print "select command fired\n"
+;
print $buf while ($len = $chan->read($buf,512)) > 0;
and the output of this program is-
C:\Compatibility_Automation_Temp>perl SSH2.pl
connetced
libssh2_channel_open_ex(ss->session, pv_channel_type, len_channel_type
+, window_size, packet_size, ((void *)0) , 0 ) -> 0x1c70aec
channel created
shell method called
blocking set ot 1
dir fired
Net::SSH2::Channel::read(size = 512, ext = 0)
##here, this program stuck
Then I went through Net::SSH2::Channel module, but, there as well I didn't understand anything e.g.-
sub shell {
$_[0]->process('shell')
}
what is this subroutine doing? I didn't understand it as I didn't see any method named "process" specified there.
Could you please give me an idea what I'm doing wrong and how can I move ahead with the better understanding of this module. |