Rsync에서 파일을 양방향으로 동기화 할 수 있습니까?


25

cygwin과 rsync를 사용하여 Linux 웹 서버를 백업했습니다. 이제 Windows 랩톱에 서버의 완벽한 사본이 있습니다. 랩톱에서 파일을 삭제하거나 수정하고 cygwin으로 rsync를 다시 실행하면 서버에서 동일한 파일을 삭제 / 업데이트합니까? 서버에서 삭제 / 수정하고 랩톱에서 rsync를 실행하면 랩톱에서 로컬 파일을 삭제 / 수정하지만 반대로 작동한다는 인상 아래 임?


12
이것은 귀하의 질문에 대한 답변이 아니지만을 살펴보십시오 unison. 두 복사본 모두에 파일 상태를 저장하여 양방향 동기화를 허용하는 동기화 도구입니다. cygwin 패키지도 있습니다.
두부

답변:


29

Rsync는 단방향 동기화를 수행하지만 동기화 방법을 결정하는 것은 사용자의 책임입니다.

Rsync 명령 구문은 다음과 같습니다.

rsync [OPTION...] SRC... [DEST]

소스에서 대상으로 동기화를 지정하십시오. 소스 및 대상은 로컬 또는 원격 경로 일 수 있습니다.

예를 들어 서버에서 랩톱으로 파일을 복사하려면 다음을 수행하십시오.

rsync [OPTION...] <server-path> <laptop-path>

반대 방향으로 동기화하려면 :

rsync [OPTION...] <laptop-path> <server-path>

따라서 귀하의 질문에 대답하려면 rsync를 실행하는 방법에 달려 있습니다.

대상에서 파일을 삭제하려면 --delete옵션 을 사용해야 합니다. 그러나 소스를 지정할 때 실수를하면 대상의 모든 것을 제거하게되므로주의하십시오. --delete옵션 없이 동기화를 테스트하는 것이 더 안전하며 작동 방식에 만족하면 --delete옵션 을 추가 할 수 있습니다 .

아래 설명에서 masegaloeh 가 제안한 대로, -n또는 --dry-run옵션을 사용하여 rsync명령 동작 을 테스트 할 수도 있습니다 .


9
추가 참고 : rsync를 동작 테스트를 들어, 매개 변수를 사용할 수 있습니다 -n또는 --dry-run당신이 파일이 삭제 및 수정 될 알 수 있도록
masegaloeh

1

python3으로 작성된 랩퍼 도구 bsync는 랩 findrsync명령으로 작업을 단순화합니다. Github 저장소 : https://github.com/dooblem/bsync

github에있을 때 두려워하지 마십시오 (즉, 도구를 사용하려면 프로그래머가되어야한다고 생각하는 방식으로).


-1

--delete-after가 아니라 --delete-after를 사용하는 것이 좋습니다. 이렇게하면 수신 측에서 이전이 아닌 전송 후 파일을 삭제하게됩니다.


OP가 rsync아무것도 삭제 하려고하지 않기 때문에 다운 보트가 있다고 생각합니다 . 그는 스스로 물건을 삭제하고 있습니다. 일반적으로 rsync'ing에 유용한 힌트입니다. 감사.
harperville
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.