Я пытаюсь передать файл с удаленного сервера на локальный сервер с помощью модуля Perl Net::SFTP::Foreign
.
Вот мой код:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use Net::SFTP::Foreign;
my $host = "host.ip.address.here";
my $user = "username";
my $pass = "password";
my $path = "/path/to/the/remote/server/directory";
my $local_dir = "/local/dir/path/";
my $sftp = Net::SFTP::Foreign->new(host=>$host , user=>$user , password=>$pass);
$sftp->die_on_error("Unable to establish SFTP connection");
$sftp->setcwd($path) or die "unable to change cwd: " . $sftp->error;
my @file = $sftp->ls($path);
print Dumper(\@file);
$sftp->mget("$path/test*.csv", $local_dir);
У меня есть список файлов на моем удаленномсервер -
test123.csv
test234.csv
test341.csv
test890.csv
test765.csv
test110.csv
Дело в том, что я хочу получить последний файл из каталога $path
, который основан на дате изменения. (Я не могу найти решение)
Есть ли команда, которая может этого добиться?
Другой метод, который я нашел, это циклически проходить по массиву @files
, но как мне получить последний файл? Более того, я не хочу проходить цикл, потому что $path
имеет много файлов, выполнение которых займет много времени.
Поэтому я хотел получить удаленный файл с помощью одной команды. Есть идеи?