2

外部サーバーからファイルをミラーリングするために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 はディレクトリをリストするだけです:

set ftp:passive-mode false;
open ftp://user:pass$@10.10.10.123
ls my_sub_dir/

次の方法はありますか?

  1. ftp サーバーへの接続を開く
  2. ダウンロードしたいディレクトリを見つける
  3. それらのディレクトリをキューに追加してダウンロードします
  4. リモート サーバー上のディレクトリの名前を変更する

バッチファイルで?

私が達成しようとしていたのは、ディレクトリをリストして興味深いものを見つけ、ダウンロードして名前を変更することでしたが、bashスクリプトと「set ftp:passive-mode false」を介してディレクトリのリストをlftpに投稿する方法が見つかりません。

4

1 に答える 1

4

変数を lftp コマンドに代入できるようにするには、次のようなものを使用します。

lftp -e "cmd1;cmd2"
于 2013-01-26T10:02:06.973 に答える