如何从本地服务器在远程服务器中创建文件?

时间:2013-05-17 05:19:14

标签: shell unix

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

有一个远程服务器,其中有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)传输到本地服务器?

如果可能,请提出建议或脚本。

感谢

3 个答案:

答案 0 :(得分:1)

如果有相当少的文件执行此操作  ssh <server> ls <dirpath>/*.txt > result.txt

其中server是远程计算机的地址。我假设你熟悉ssh。

ssh将执行列出文件的ls

dirpath是文件所在的位置。

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

列表将通过ssh返回到您的计算机

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

答案 1 :(得分:1)

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

看一下引号。

HTH

答案 2 :(得分:0)

这是link

   #!/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();