2012-10-19 174 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"