Hi Chas,

I have written the program as follows:

use strict;
use Net::SFTP;
use Net::SFTP::Constants ':status';

my $user;

my($host) = "sacsun120";

# set up the arguments based on the command line options
my %args = (ssh_args => []);
$args{debug} = 1;
foreach (keys(%args)) {
   print "$_ -> $args{$_}\n";
}

push @{ $args{ssh_args} }, user => "crdadm";
$args{"password"} = "crpr0cess";

# make our connection

print "Connecting to $host...\n";

foreach (keys(%args)) {
   print "$_ -> $args{$_}\n";
}
my $sftp = Net::SFTP->new($host, %args);

# get a listing of the base directory

#$sftp->ls("." , sub { print $_[0]->{longname}, "\n" });

$sftp->get("/trading/tisissuer08260004.txt",".");
my ($status, $msg) = $sftp->status;
print "ERROR with get: $msg\n";
print "Finished\n";

When trying to copy the file, it is showing the following error eventhough
the file is there.

*ssh_args -> ARRAY(0xf096c)
debug -> 1
Connecting to sacsun120...
password -> crpr0cess
ssh_args -> ARRAY(0xf096c)
debug -> 1
in new of perl mod ..
cfg object :Net::SSH::Perl::Config=HASH(0x103fbc):
sacsun120: Reading configuration data /export/home/crdadm/.ssh/config
sacsun120: Reading configuration data /etc/ssh_config
sacsun120: Connecting to sacsun120, port 22.
sacsun120: Remote protocol version 2.0, remote software version
Sun_SSH_1.0.1
sacsun120: Net::SSH::Perl Version 1.28, protocol version 2.0.
sacsun120: No compat match: Sun_SSH_1.0.1.
sacsun120: Connection established.
sacsun120: Sent key-exchange init (KEXINIT), wait response.
sacsun120: Algorithms, c->s: 3des-cbc hmac-sha1 none
sacsun120: Algorithms, s->c: 3des-cbc hmac-sha1 none
sacsun120: Entering Diffie-Hellman Group 1 key exchange.
sacsun120: Sent DH public key, waiting for reply.
sacsun120: Received host key, type 'ssh-dss'.
sacsun120: Host 'sacsun120' is known and matches the host key.
sacsun120: Computing shared secret key.
sacsun120: Verifying server signature.
sacsun120: Waiting for NEWKEYS message.
sacsun120: Enabling incoming encryption/MAC/compression.
sacsun120: Send NEWKEYS, enable outgoing encryption/MAC/compression.
sacsun120: Sending request for user-authentication service.
sacsun120: Service accepted: ssh-userauth.
sacsun120: Trying empty user-authentication request.
sacsun120: Authentication methods that can continue: publickey,password.
sacsun120: Next method to try is publickey.
sacsun120: Trying pubkey authentication with key file
'/export/home/crdadm/.ssh/id_dsa'
sacsun120: Authentication methods that can continue: publickey,password.
sacsun120: Next method to try is publickey.
sacsun120: Next method to try is password.
sacsun120: Trying password authentication.
sacsun120: Login completed, opening dummy shell channel.
sacsun120: channel 0: new [client-session]
sacsun120: Requesting channel_open for channel 0.
sacsun120: channel 0: open confirm rwindow 0 rmax 16384
sacsun120: Got channel open confirmation, requesting shell.
sacsun120: Requesting service shell on channel 0.
sacsun120: channel 1: new [client-session]
sacsun120: Requesting channel_open for channel 1.
sacsun120: Sending subsystem: sftp
sacsun120: Requesting service subsystem on channel 1.
sacsun120: channel 1: open confirm rwindow 0 rmax 16384
sacsun120: sftp: Sending SSH2_FXP_INIT
sacsun120: sftp: Remote version: 2
sacsun120: sftp: Sent message T:17 I:0
sacsun120: sftp: Received stat reply T:101 I:0
Couldn't stat remote file: No such file or directory at sample.pl line 32
ERROR with get: No such file or directory
Finished
*
**I am not getting what it meant. Could you please helpme?

Thanks,
Rajeev Kilaru



On 8/24/07, kilaru rajeev <[EMAIL PROTECTED] > wrote:
>
> Hi Chas,
>
> It is perfect. Thanks a lot.
>
> Regards,
> Rajeev Kilaru
>
>
>  On 8/24/07, Chas Owens <[EMAIL PROTECTED] > wrote:
> >
> > On 8/24/07, kilaru rajeev < [EMAIL PROTECTED]> wrote:
> > > Hi Chas,
> > >
> > > I was not given the proper arguments to the  *new* function. That is
> > why, it
> > > was failed to connect. This time I have another trouble. As part of my
> > code,
> > > I have used the below to statments to list the files in the directory.
> >
> > >
> > >  my @ls = $sftp->ls("$srcDir/");
> > >    print "\n----------------->@ls\n";
> > >
> > > But I am not getting the output eventhough the directory got some
> > files
> > > except "------------------->" part. sometimes I am getting the output
> > as
> > > below:
> > >
> > > ---------------------> HASH(0xd03334) HASH(0xd033dc) HASH(0xd03498)
> > > HASH(0xd03540) HASH(0xd035e8) HASH(0xd03690) HASH(0xd03738)
> > HASH(0xd037e0)
> > > HASH(0xd044a4) HASH(0xd0454c) HASH(0xd045f4) HASH(0xd0469c)
> > HASH(0xd04744)
> > > HASH(0xd047ec) HASH(0xd05da0) HASH(0xd05dac) HASH(0xd05e24)
> > HASH(0xd05e9c)
> > > HASH(0xd05f50) HASH(0xd0601c) HASH(0xd060c4) HASH(0xd0616c)
> > HASH(0xd06214)
> > > HASH(0xd062bc) HASH(0xd06364) HASH(0xcdbc20) HASH(0xcdbcc8)
> > HASH(0xcdbd70)
> > > HASH(0xcdbe18) HASH(0xcdbec0) HASH(0xcdbf68)
> > >
> > > I am not sure about the return value of the $sftp->ls(). I thought it
> > will
> > > return a list as in Net::FTP.  How I should use it? Please help me.
> >
> > from the docs:
> >    $sftp->ls($remote [, $subref ])
> >
> >    Fetches a directory listing of $remote.
> >
> >    If $subref is specified, for each entry in the directory, $subref
> > will
> >    be called and given a reference to a hash with three keys: filename,
> >    the name of the entry in the directory listing; longname, an entry in
> >    a "long" listing like ls -l; and a, a Net::SFTP::Attributes object,
> >    which contains the file attributes of the entry (atime, mtime,
> >    permissions, etc.).
> >
> >    If $subref is not specified, returns a list of directory entries,
> > each
> >    of which is a reference to a hash as described in the previous
> > paragraph.
> >
> > So if you only want the filenames you can say
> >
> > my @ls = map { $_->{filename} } $sftp->ls($srcDir);
> >
>
>

Reply via email to