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 /some/dir > output.txt"ファイルの場合: 、クライアント マシンで作成されるファイルの場合: ssh <server> "ls /some/dir" > output.txt

引用符を見てください。

h番目

于 2013-05-17T07:08:05.067 に答える
1

ファイルがかなり少ない場合は、これを行います ssh <server> ls <dirpath>/*.txt > result.txt

server はリモート マシンのアドレスです。あなたがsshに精通していると仮定しています。

ssh が実行lsされ、ファイルが一覧表示されます。

dirpath は、ファイルが配置されている場所です。

*.txt は、テキスト ファイルを除外します。

リストは ssh 経由でマシンに返されます

> result.txt結果をファイルに保存します

于 2013-05-17T05:38:17.987 に答える
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 に答える