外部サーバーからファイルをミラーリングするために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/
次の方法はありますか?
- ftp サーバーへの接続を開く
- ダウンロードしたいディレクトリを見つける
- それらのディレクトリをキューに追加してダウンロードします
- リモート サーバー上のディレクトリの名前を変更する
バッチファイルで?
私が達成しようとしていたのは、ディレクトリをリストして興味深いものを見つけ、ダウンロードして名前を変更することでしたが、bashスクリプトと「set ftp:passive-mode false」を介してディレクトリのリストをlftpに投稿する方法が見つかりません。