2014-11-27 1 views
1

ftp를 통해 배포 서버로 파일을 업로드하는 쉘 스크립트를 작성했습니다. 한 번에 전체 배포 즉 전체 프로젝트를 원할 경우이 스크립트가 완벽하게 작동합니다. 하지만 문제는 내가 로컬 컴퓨터에서 특정 파일을 변경하고 지금은 덮어 쓰지 않는 ftp를 사용하여 서버에서 기존의 동일한 파일을 덮어 쓰길 원할 때입니다. FOLDERS :명령을 사용하여 FTP를 통해 파일을 덮어 쓰는 방법은 무엇입니까?

MKDIR=`for directory in $FOLDERS; do echo "mkd \"${directory}\""; done` 
DELETE=`for file in $DFILES; do echo "delete \"${file}\""; done` 
ATTACH=`for file in $FILES; do echo "put \"${file}\""; done` 


IFS=$ORIGIFS 
# Send updates to server 
    ftp -nv <<EOF 
    open $FTPHOST 
    user $FTPUSER $FTPPASS 
    binary 
    cd $FTPDIR 
    $MKDIR 
    $ATTACH 
    quit 
EOF 

삭제, 생성 할 디렉토리를 포함은 파일 목록을 삭제 한 문자열이다 존재하는 서버에 덮어 쓰기 수정과 필요 된 파일의 목록이 첨부합니다. 그 후

내가 기존 파일 수정 후 두 번째로 실행하면

 local: ./testproject/trunk/test.php ./svnupdate.txt remote: ./testproject/trunk/test.php ./svnupdate.txt 
     local: ./testproject/trunk/test.php ./svnupdate.txt: No such file or directory 
+1

복사/삭제/두 개의 파일 이름에 합류처럼 외모를 만들 수있는 파일 이름. – Jdamian

+0

이 파일을 분리하는 방법? 이 파일 이름은 FILES 변수에 단일 행 문자열로 저장됩니다. –

+0

FILES 변수가 채워지는 곳에 스크립트 행을 게시하십시오. – Jdamian

답변

0

내가 내 대답을 발견했다. 내 스크립트에

문제 문 : @Jdamian에 의해 말대로

ATTACH=`for file in $FILES; do echo "put \"${file}\""; done` 

내가이 코드를 upload.But 할 파일의 목록을 작성하는 각 파일 이름을 연결. @ 실수를 지적하기 위해 @ Jdamian 주셔서 감사합니다.

솔루션 :

ATTACH=`for file in $FILES 
do 
    echo "put $file" 
done`