lftp + bash脚本+变量

时间:2012-10-19 21:32:42

标签: linux variables queue mirror lftp

我正在使用lftp从外部服务器镜像文件,但现在我需要的是在成功下载后重命名源目录(在远程服务器上)。基本上我需要的是打开远程服务器列表目录上的连接,下载名称从“todo”开始的所有目录,即成功后的todo.20121019我必须将下载的目录重命名为“done.20121019”。服务器上可能有多个目录。

远程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:pass$@10.10.10.123
ls my_sub_dir/

有办法:

  1. 打开与ftp服务器的连接
  2. 找到我要下载的目录
  3. 将这些目录添加到队列并下载
  4. 重命名远程服务器上的目录
  5. 在批处理文件中?

    我试图获得的是列出dirs找到有意义的,下载和重命名,但我找不到通过bash脚本和“设置ftp:passive-mode false”将目录列表发布到lftp的方法。

1 个答案:

答案 0 :(得分:4)

为了能够将变量替换为lftp命令,请使用以下内容:

lftp -e "cmd1;cmd2"