새 파일 만 재 동기화하는 방법 설정하려고합니다. 내가 사용하는 명령은 다음과

나중에 새로 생성 된 파일을 추가하여 기본 웹 서버를 원격 서버에 동기화하도록 rsync를 설정하려고합니다.

내가 사용하는 명령은 다음과 같습니다.

rsync -avh --update -e "ssh -i /path/to/thishost-rsync-key" remoteuser@remotehost:/foo/bar /foo/bar

그러나 웹 서버는 실제로 ‘–update’플래그에도 불구하고 모든 파일을 전송하는 것으로 보입니다. 나는 다른 플래그 조합을 시도했지만 (예 : ‘-a’를 생략하고 대신 ‘-uv’를 사용) 도움이되지 못했습니다. rsync 명령을 수정하여 새로 추가 된 파일 만 보내려면 어떻게해야하는지 궁금합니다. 감사



답변

보낸 사람 man rsync:

--ignore-existing       skip updating files that exist on receiver

--update약간 다른 작업을 수행하므로 예기치 않은 결과가 발생하는 이유 일 수 있습니다 (참조 man rsync).

이것은 rsync가 대상에 존재 하고 소스 파일보다 새로운 수정 된 시간을 가진 파일을 건너 뛰 도록합니다 . 기존 대상 파일의 수정 시간이 원본 파일의 수정 시간과 같으면 크기가 다른 경우 업데이트됩니다.


답변

필자의 경우 비슷한 문제가 발생하여 수정되거나 새로운 파일 대신 모든 파일이 전송되었습니다. I는 파라미터를 사용하여이를 해결 -t(대신 -a) 및 -P(당량 --partial --progress)

rsync -h -v -r -P -t 소스 대상

이것은 새 파일과 이미 존재하지만 수정 된 파일 만 전송합니다. -a사용자 및 그룹 ID 동기화와 같이 너무 많은 작업을 수행합니다.이 경우 소스 및 대상 시스템에 다른 사용자 및 그룹이 있으므로 작동하지 않습니다.

매개 변수의 세부 사항 :

  • -h: 사람이 읽을 수있는 숫자
  • -v: 자세한
  • -r: 디렉토리로 재귀
  • -P: --partial(일부 전송 된 파일 유지) +
            --progress(전송 중 진행률 표시)
  • -t: 수정 시간 유지

답변

rsync에 대한 내 경험으로는 1TB 파티션 복사가 너무 커서 효율적이지 않습니다. 그것을 처리하는 데 rsync가 영원히 필요합니다. 대신 하위 디렉토리로 수행하십시오. 즉, 각 기본 서브 디렉토리에 대해 rsync를 실행하십시오. 수만 개의 파일을 저글링하지 않아도 훨씬 빠릅니다.


답변

시험

rsync -zvrt --update SOURCE DESTN


답변