Я новичок в перле. У меня есть входной файл со строками с разделителями, которые имеют server_name и имена файлов в качестве полей. Имена файлов имеют подстановочный знак (*) во входном файле веб-канала. Фактические имена файлов будут сопровождаться временными метками.
Ex: Actual files in remote servers
server_1/abc_20110801.txt
server_1/abc_20110802.txt
server_1/abc_20110803.txt
server_2/xyz_20110801.dat
server_2/xyz_20110802.dat
Ex: Input feed file
server_1|abc_*.txt
server_2|xyz_*.dat
Я пытаюсь подключиться к удаленным серверам по ssh, прочитать файл и зафиксировать временные метки «последнего» файла (в данном случае server_1/abc_20110803.txt и server_2/xyz_20110802.dat). Ключи ssh для всех удаленных серверов уже настроены, поэтому нам не нужно передавать идентификатор пользователя и пароль.
Я могу сделать это, если файлы существуют на том же сервере, используя следующее:
my @list_files = map { chomp; $_ } (`ls -t $wild_f_nme`);
my $f_nme=$list_files[0];
my ($accesstime, $modtime, $createtime, $fsize) = (stat($f_nme))[8,9,10,7];
Как мне это сделать, чтобы проверить временные метки файлов на удаленных серверах. Мне нужно инициировать ssh-соединение для каждого из серверов.
К сведению: я не могу (не могу) установить какие-либо модули (например, Net::OpenSSH). Можем ли мы добиться этого с помощью чего-то вроде ?
my @list_files = map { chomp; $_ } (`qx/ssh $serv_nme ls -t $d_loc/$wild_f_nme`);