rsync와 양방향 동기화


11

rsync와 양방향 또는 양방향 동기화를 설정하려고합니다. 필자의 경우 B에서 A로 동기화 할 때 파일을 삭제하면됩니다. 따라서 다음과 같이 rsync를 두 번 실행하려고했습니다.

rsync -rtuv ./A/ ./B/
rsync -rtuv --delete ./B/ ./A/

이 솔루션 의이 문제는 rsync (AB)를 실행 한 직후에 rsync (B-> A)를 실행할 때 동기화 사이에 생성 된 새 파일도 제거된다는 것입니다.

이 날짜 / 시간 이전에 파일을 만든 경우에만 파일을 삭제하는 조건으로 타임 스탬프를 지정할 수있는 방법이 있습니까?

업데이트 :

통합 솔루션이 있음을 이해하지만 통합에 대한 문제는 양쪽 끝에 설치해야합니다. 원격 서버와 동기화 중이며 원격 끝에 unison을 설치할 수 없습니다.


여기에 더 많은 답변이있는 매우 유사한 질문이 있습니다. stackoverflow.com/questions/2936627/two-way-sync-with-rsync
Thomas

답변:


4

정확히이 작업을 위해 설계된 osync를 시도 할 수 있습니다. 한 번 복잡한 rsync 명령 시퀀스를 설정하여 작업을 수행했지만 이제는 osync를 사용합니다.

https://github.com/deajan/osync

내부적으로 rsync를 사용하므로 rsync를 사용할 수있는 모든 상황에 적합해야합니다.


1
고마워 마크 나는 단지 내 자신의 질문에 대답하려고했다. 나는 bsync ( github.com/dooblem/bsync ) 라는 매우 유사한 스크립트를 찾았습니다. 기본적으로 diff를 사용하여 동기화해야 할 것을 알아냅니다. 동기화 충돌이 예상되지 않기 때문에이 스크립트를 약간 수정하여 크론 작업을 실행할 때 자동으로 실행되도록합니다.
Raza

7

rsync이 작업에 대한 잘못된 도구입니다. 정확히 발생한 이유입니다. 대신 다음을 사용하십시오 unison.

unison A/ B/

당신이 처음 실행은 고유에있는 파일 식별 A및에 유일하게있는 자들을 B. 또한 두 곳에있는 것을 표시하고 덮어 쓸 것을 식별하도록 요청합니다.

당신이 실행할 때 그것은 변경 사항 복사됩니다 ABB로를 A수동 해결을 위해 두 곳에서 변경 한 모든 파일을 신고.

mkdir A B
date > A/date
who > B/who
unison A/ B/
# Lots of output from unison, showing synchronisation

ls A
date    who
ls B
date    who

date > A/date
unison A/ B/
# Lots of output from unison, showing synchronisation

unison가정을 정의하여 동기화 중에 요청되는 질문 수를 줄여 프로세스를 자동화하는 데 유용한 유용한 플래그가 많이 있습니다 .


3
나는 단일 솔루션을 보았지만 그 문제는 양쪽 끝에 설치해야한다는 것입니다. 원격 장치와 동기화 중이며 원격 장치에 단일 장치를 설치할 수 없습니다.
Raza

1
OP에는 도움이되지 않지만 unison 을 찾고있었습니다 . 나는 거기에 볼 데비안 패키지가 하고 ssh를 전송을 지원합니다.
Ted

1
서버에 설치하지 않고 한마음으로 사용이 응답에 코멘트를 볼 수있는 가능성이 있습니다 stackoverflow.com/a/2936711 에있는 점을 i3vi3v.wordpress.com/2013/01/09/...
토마스

-1

정말로 필요한 것은 Rclone 입니다. Rclone은 클라우드 스토리지 (박스, 드롭 박스, 넥스트 클라우드, ftp 등) 및 로컬 스토리지를위한 rsync입니다.


2
문제를 해결하기 위해 어떻게 rclone을 설치 하고 사용 합니까?
Jeff Schaller

3
rclone은 아직 양방향 동기화가 없습니다.
sean
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.