Hello
thank you for your input. I modified the script accordingly but still gives me this error: Uncaught exception from user code: Couldn't stat remote file: No such file at ./datalex.pl line 37. here is my script with the code adapted:perhaps i should use $sftp->ls to get the filename but I do not understand how to get the name of the file in a variable.. i do not understand the hash reference. i try this but it does not work. .#!/usr/bin/perl -w use strict; use warnings; use Net::SFTP::Foreign; use POSIX qw(strftime); use diagnostics; use Net::SFTP::Foreign::Constants qw(:error :status); my $datestring =strftime "%d-%m-%Y", localtime; my $host="sftp.brusselsairlines.com"; my $username="dlex"; my $local="/mnt/datalex"; my $file="BookingReport_Daily_$datestring.xls"; #nagios integration. my $sftp = Net::SFTP::Foreign->new($host, user=> $username, stderr_dis +card => 1 ); $sftp->die_on_error("unable to establish SFTP Connection"); my $ok = 0; my $failed = 0; if ( -e "$local/$file"){ print "BH-ZONE-BATCHSRV-1\tfoster_report_transfer\t0\tFile \" +$file\" has already been Downloaded to ==> \"$local\"\n"; } else { unless ($sftp->get("$file", "$local/$file")) { if (($sftp->error == SFTP_ERR_REMOTE_STAT_FAILED or $sftp->error == SFTP_ERR_REMOTE_OPEN_FAILED) and $sftp->status == SSH2_FX_NO_SUCH_FILE) { print "Remote file does not exist!"; } else { print "Transfer Failed"; } die $sftp->error; } print "File \"$file\" downloaded to ==> \"$local\"\n"; $sftp->remove($file); $ok++; } #print "$ok files have been downloaded, $failed files failed!\n\n"; $sftp->disconnect();
thanksmy $ls = $sftp->ls( '.', wanted => qr/$datestring/) or die "unable to + retrieve directory: ".$sftp->error; my $file = "$_->{filename}\n" for (@$ls); print $file
In reply to Re^2: net-sftp-foreign transfer failed vs file not present.
by mariog
in thread net-sftp-foreign transfer failed vs file not present.
by mariog
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |