2012-10-19 221 views
2

我使用lftp鏡像來自外部服務器的文件,但現在我需要的是在成功下載重命名源目錄(在遠程服務器上)之後。基本上我需要的是在遠程服務器列表目錄上打開連接,下載所有名稱從「todo」開始的dirs,即todo.20121019成功後,我必須將下載的目錄重命名爲「done.20121019」。服務器上可能有多個目錄。lftp + bash腳本+變量

遠程FTP服務器只與活動連接一起工作。

#!/bin/bash 

directories=`lftp -f lftp_script_file.lf |grep done|awk '{print $NF}'` 

for i in $directories 
    do 
    echo $i //here I get list of directories that should be downloaded and renamed 
    done 

lftp_script_file.lf只列出directires:

set ftp:passive-mode false; 
open ftp://user:[email protected] 
ls my_sub_dir/ 

有沒有一種辦法:

  1. 打開連接到FTP服務器
  2. 發現,我想下載
  3. 目錄
  4. 添加這些dirs排隊和下載
  5. 重命名遠程服務器上的目錄

在批處理文件中?

我試圖存檔的是列出dirs找到interesing的人,下載和重命名,但我無法找到一種方法來通過bash腳本和「set ftp:passive-mode false」將dirs列表發佈到lftp。

回答

4

爲了能夠替代變量引入的lftp命令使用這樣的事情:

lftp -e "cmd1;cmd2"