2013-05-17 388 views
1

誰能告訴我如何將遠程服務器中的文件的名稱存儲到文件中,然後獲取包含本地服務器中名稱的文件?如何從本地服務器在遠程服務器上創建文件?

存在其中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)傳輸到本地服務器?

如果可能的話,請提供建議或腳本。

感謝

+0

爲什麼你需要創建一個遠程服務器上的文件列表中,然後轉移除此之外地方。爲什麼不直接通過查看遠程服務器在本地創建文件? – Vijay

回答

1

,如果有合理的幾個文件做 ssh <server> ls <dirpath>/*.txt > result.txt

其中服務器是遠程計算機的地址。我假設你熟悉ssh。

ssh將執行ls列出文件。

dirpath是文件所在的位置。

* .txt會過濾掉文本文件。

名單將通過SSH返回到你的機器

> result.txt將結果保存到一個文件

1

對於要在遠程服務器上創建的文件: ssh <server> "ls /some/dir > output.txt",對於要創建的文件在您的客戶端機器上: ssh <server> "ls /some/dir" > output.txt

看看報價。

心連心

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(); 
相關問題