Hi
It had been really confusing , however I have managed to do asynchronous SSH output using SSH Perl module. Here is teh code extract
elsif (defined $pid)
{
close STDOUT;
close STDERR;
$ssh=Net::SSH::Perl->new("113.128.160.214");
$ssh->login($UNM,$Pass,'true');
$cmd="ls -l";
$ssh->register_handler(SSH_SMSG_STDOUT_DATA,sub{($ssh,$packetout)=@_;$
+cache->set($session,[0,$packetout->get_str])});
#$ssh->register_handler(SSH_SMSG_EXITSTATUS,sub{($ssh,$packetexit)=@_;
+$cache->set($session,[1,$packetexit->get_str])});
($stdout,$stderr,$exit)=$ssh->cmd($cmd);
The above code returns me the standard output from the command executed over SSH.I would also like to print messages like connecting to the remotebox ,any errors occured while connection.I tried Standard Error message constant . but it did not return me anything worthwhile.
Please advise |