cygwin과 rsync를 사용하여 Linux 웹 서버를 백업했습니다. 이제 Windows 랩톱에 서버의 완벽한 사본이 있습니다. 랩톱에서 파일을 삭제하거나 수정하고 cygwin으로 rsync를 다시 실행하면 서버에서 동일한 파일을 삭제 / 업데이트합니까? 서버에서 삭제 / 수정하고 랩톱에서 rsync를 실행하면 랩톱에서 로컬 파일을 삭제 / 수정하지만 반대로 작동한다는 인상 아래 임?
cygwin과 rsync를 사용하여 Linux 웹 서버를 백업했습니다. 이제 Windows 랩톱에 서버의 완벽한 사본이 있습니다. 랩톱에서 파일을 삭제하거나 수정하고 cygwin으로 rsync를 다시 실행하면 서버에서 동일한 파일을 삭제 / 업데이트합니까? 서버에서 삭제 / 수정하고 랩톱에서 rsync를 실행하면 랩톱에서 로컬 파일을 삭제 / 수정하지만 반대로 작동한다는 인상 아래 임?
답변:
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
명령 동작 을 테스트 할 수도 있습니다 .
-n
또는 --dry-run
당신이 파일이 삭제 및 수정 될 알 수 있도록
python3으로 작성된 랩퍼 도구 bsync
는 랩 find
및 rsync
명령으로 작업을 단순화합니다. Github 저장소 : https://github.com/dooblem/bsync
github에있을 때 두려워하지 마십시오 (즉, 도구를 사용하려면 프로그래머가되어야한다고 생각하는 방식으로).
--delete-after가 아니라 --delete-after를 사용하는 것이 좋습니다. 이렇게하면 수신 측에서 이전이 아닌 전송 후 파일을 삭제하게됩니다.
rsync
아무것도 삭제 하려고하지 않기 때문에 다운 보트가 있다고 생각합니다 . 그는 스스로 물건을 삭제하고 있습니다. 일반적으로 rsync'ing에 유용한 힌트입니다. 감사.
unison
. 두 복사본 모두에 파일 상태를 저장하여 양방향 동기화를 허용하는 동기화 도구입니다. cygwin 패키지도 있습니다.