0

谁能告诉我如何将远程服务器中的文件名存储到文件中,然后在本地服务器中获取包含该名称的文件?

有一个远程服务器,其中有 5 个文件,比如说

a.txt
b.txt
c.txt
d.txt
e.txt

我想在我的本地服务器中编写一个脚本,它将连接到远程服务器并将远程服务器中存在的所有文件名(a.txt、b.txt、c.txt、d.txt、e.txt)写入一个临时文件说 filenames.txt。

所以 filenames.txt 将包含内容

cat filenames.txt
a.txt
b.txt
c.txt
d.txt
e.txt

在此之后我想使用任何协议将此文件(filenames.txt)传输到本地服务器?

如果可能,请提出想法或脚本。

谢谢

4

3 回答 3

1

如果文件很少,请执行此操作 ssh <server> ls <dirpath>/*.txt > result.txt

其中 server 是远程机器的地址。我假设您熟悉 ssh。

ssh 将执行ls列出文件的内容。

dirpath 是文件所在的位置。

*.txt 将过滤掉文本文件。

该列表将通过 ssh 返回到您的机器

> result.txt将结果存储到文件中

于 2013-05-17T05:38:17.987 回答
1

对于要在远程服务器上创建 ssh <server> "ls /some/dir > output.txt"的文件: ,对于要在您的客户端计算机上创建的文件: ssh <server> "ls /some/dir" > output.txt

看看报价。

hth

于 2013-05-17T07:08:05.067 回答
0

这是链接

   #!/usr/bin/perl
     use strict;
     use warnings;
     use Net::FTP;
     my $ftp_site     = 'localhost';
     my $ftp_dir      = '/home/simon/software';
     my $ftp_user     = 'a_login_name';
     my $ftp_password = 'a_password';
     my $glob         = 'ex*';
     my @remote_files;
     my $ftp = Net::FTP-&gt;new($ftp_site) 
        or die "Could not connect to $ftp_site: $!";
     $ftp-&gt;login($ftp_user, $ftp_password) 
        or die "Could not login to $ftp_site with user $ftp_user: $!";
     $ftp-&gt;cwd($ftp_dir) 
        or die "Could not change remote working " . 
                 "directory to $ftp_dir on $ftp_site";
     @remote_files = $ftp-&gt;ls($glob);
     foreach my $file (@remote_files) {
         print "Saw: $file\n";
     }
     $ftp-&gt;quit(); 
于 2013-05-17T07:18:37.507 回答