2010-03-29 7 views
5

현재 모든 빌드 파일을 복사하여 마지막 빌드 이후 변경된 파일 만 복사하도록하는 scp 배포를 최적화하고 싶습니다. 어떻게 든 현재 설정으로 가능해야한다고 생각하지만이 작업을 수행하는 방법을 모르겠습니다.새 파일/변경된 파일 만 scp로 ANT 가져 오기

나는 다음과 같습니다

프로젝트/SRC/ㅋ/ㅋ/< ---- 내가 (이 경우에는 주로 PHP, 일부 고정 자산)

프로젝트/<을 구축 편집하고 파일 - ------ 내가 여기에 파일을 복사하는 데 사용하는 로컬 빌드 단계가

지금 내가 필요로 할 때 모든 Project/build를 원격 서버에 복사하는 scp 작업이 있습니다.

내가 원하는 것을 달성하기 위해이 추가 "빌드"디렉토리를 어떻게 든 활용할 수 있습니까? src/**와 build/** 사이에 "diff"만 업로드하려는 것을 의미합니다. 여하튼 이것을 ANT에서 파일 세트로 검색 한 다음 scp로 검색 할 수 있습니까?

내가 의미하는 바는 그 사이에 서버의 파일을 어떻게 든 지우거나 망가 뜨리면 ANT 스크립트가 알아 채지 못한다는 것을 알지만 나에게 이것은 괜찮습니다.

+0

명확히하기 위해, 나는 정기적 인 복사 작업이 증분 복사로하는 일을 기본적으로하고 싶다. – Artem

답변

13

당신은 그래서 같은 modified 태그를 사용하여 마지막 푸시 이후에 수정 된 파일을 복사 할 ant scp을 알 수 있습니다 param에 선언 된 캐시 파일에 있습니다. 그 후에 수정 된 것만 보냅니다.

sftp 모드에서 테스트되고 확인되었습니다.

0

대신 rsync을 사용해야한다고 생각합니다. 질문에 대한 답변을 얻은 다음 article을 찾았습니다.

간단히 말해 rsync는 중단 된 위치에서 다시 시작되며 ssh를 통해 터널링 할 수 있어야합니다.

<scp trust="true" sftp="true"... > 
    <fileset dir="${local.dir}"> 
    <modified> 
     <param name="cache.cachefile" value="localdev.cache"/> 
    </modified> 
    </fileset> 
</scp> 

이를 처음 사용할 때, 그것은 모든 파일을 전송하고 타임 스탬프를 캐시합니다 :