2012-10-19 4 views
2

외부 서버에서 파일을 미러링하기 위해 lftp를 사용하고 있지만 이제는 원격 서버에서 sucessful download rename source directory (원격 서버에서)를 다운로드해야합니다. 기본적으로 원격 서버 목록 디렉토리에서 연결을 열면 이름이 "todo"즉 todo.20121019부터 시작하여 모든 dir을 다운로드 한 다음 다운로드가 완료된 디렉토리를 "done.20121019"로 바꿔야합니다. 서버에 하나 이상의 dir이있을 수 있습니다.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 :

  1. 열린 연결 서버를
  2. ftp를 내가
  3. 을 다운로드 할 디렉토리를 찾을 :

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

    가있는 방법이다

  4. 대기열에이 dir을 추가하고 다운로드하십시오.
  5. 원격 서버의 디렉토리 이름 바꾸기

배치 파일에 있습니까?

내가 시도한 것은 interesing 것들을 찾고 다운로드하고 이름을 바꾸는 것이었지만 bash 스크립트와 "ftp : passive-mode false 설정"을 통해 lftp에 dirs 목록을 게시하는 방법을 찾지 못했습니다.

답변

4

lftp는 명령으로 변수를 대체 할 수 있도록이 같은 것을 사용

lftp -e "cmd1;cmd2"