sub removeRemoteFile {
my $file = shift;
for (1 .. 5) {
return TRUE if $sftp -> remove($file);
sleep 30;
}
return FALSE;
}
####
sub removeRemoteFile {
my %args = @_;
for (1 .. $args{RETRIES}) {
return TRUE if $sftp -> remove("$args{FILE}");
sleep $args{SLEEP};
}
return FALSE;
}
####
sub getFile {
my %args = @_;
my $name = $args{FILE};
$name =~ s|.*/||;
for (1 .. $args{RETRIES}) {
my $size;
if ($sftp -> get($args{FILE},"$args{LOCAL}/$name")) {
$size = -s "$args{LOCAL}/$name";
}
return TRUE if defined $size && $size == $args{RSIZE};
sleep $args{SLEEP};
}
unlink "$args{LOCAL}/$name" if -f "$args{LOCAL}/$name";
return FALSE;
}
####
for my $file ( ... ) {
if (getFile( ... )) {
if (!removeRemoteFile( ... )) {
warn "Couldn't remove remote $file!\n"
}
} else {
warn "Couldn't download $args{REMOTE}/$file!\n";
}
}