program story

rsync와 양방향 동기화

inputbox 2020. 9. 6. 09:55
반응형

rsync와 양방향 동기화


폴더 a /와 원격 폴더 A /가 있습니다. 이제 Makefile에서 다음과 같이 실행합니다.

get-music:
 rsync -avzru server:/media/10001/music/ /media/Incoming/music/

put-music:
 rsync -avzru /media/Incoming/music/ server:/media/10001/music/

sync-music: get-music put-music

내가 sync-music을 만들 때, 먼저 서버에서 로컬로 모든 diff를 가져온 다음 그 반대에서 모든 diff를 로컬에서 서버로 보냅니다.

이것은 미래에 업데이트 나 새 파일이있을 때만 매우 잘 작동합니다. 삭제가 있으면 아무 작업도 수행하지 않습니다.

rsync에는 내가 원하는 것을 달성하는 데 도움이되는 --delete 및 --delete-after 옵션이 있지만, 양방향 동기화에서는 작동하지 않습니다.

syn에서 서버 파일을 삭제하려면 로컬 파일이 삭제되면 작동하지만 어떤 이유로 (이후 설명) 서버에 없지만 로컬에 존재하고 삭제 된 파일이 있으면 나는 그것들을 로컬에서 제거하고 서버가 복사하지 않기를 원합니다.

상황에 따라 3 대의 기계가 있습니다.

  1. 데스크탑
  2. 공책
  3. 홈 서버

따라서 때때로 서버에 노트북 동기화로 삭제 된 파일이있을 수 있습니다. 예를 들어 데스크톱에서 동기화를 실행할 때 (삭제 된 서버 파일이 여전히 존재하는 경우) 이러한 파일이 삭제되지 않기를 원합니다. 다시 서버에 복사되었습니다.

나는 이것이 데이터베이스와 작업 추적에서만 가능하다고 생각합니다.

더 간단한 솔루션이 있습니까? 감사합니다.


Unison 사용해보기 : http://www.cis.upenn.edu/~bcpierce/unison/

통사론: unison dirA/ dirB/

Unison은 파일이 다를 때 수행 할 작업을 요청하지만 기본 (비 충돌) 옵션을 허용하는 다음을 사용하여 프로세스를 자동화 할 수 있습니다.

unison -auto dirA/ dirB/

unison -batch dirA/ dirB/ 전혀 질문하지 않고 무시 된 파일 수를 출력합니다 (충돌했기 때문에).


bitpocket을 사용해 볼 수도 있습니다 : https://github.com/sickill/bitpocket


이 시도,

get-music:
 rsync -avzru --delete-excluded server:/media/10001/music/ /media/Incoming/music/

put-music:
 rsync -avzru --delete-excluded /media/Incoming/music/ server:/media/10001/music/

sync-music: get-music put-music

나는 이것을 테스트하고 그것은 나를 위해 일했습니다. Windows7 (rsync 패키지가 설치된 cygwin 사용)과 FreeNAS 파일 서버 (FreeNAS는 rsync 패키지가 사전 설치된 FreeBSD에서 실행 됨)간에 양방향 동기화를 수행하고 있습니다.


지능형 삭제 전파를 기반으로하는 rsync 인 Osync : http://www.netpower.fr/osync를 사용할 수 있습니다 . 중지 된 실행 재개, 소프트 삭제 및 시간 제어와 같은 여러 옵션도 있습니다.


원래 질문에는 데스크톱 및 랩톱 및 음악 파일과 관련된 예제 (따라서 아마도 GUI를 사용하고있을 것임)도 포함되므로 지금까지 최고의 양방향, 다중 플랫폼, 무료 및 오픈 소스 프로그램 중 하나 인 FreeFileSync를 언급하겠습니다. .

GUI 기반이며 매우 빠르고 직관적이며 원격 연결, "충돌"(예 : 유사한 타임 스탬프가있는 파일)을보고 대화식으로 관리하고 양방향 전송, 미러링 및 양방향 전환 기능을 포함하여 필터링 및 기타 여러 옵션이 제공됩니다. 곧.


csync를 시도해 볼 수 있으며, owncloud내부에 있는 동기화 엔진 입니다.


지금 SparkleShare https://www.sparkleshare.org/를 사용하고 있습니다.

Mac, Linux 및 Windows에서 작동합니다.


두 가지 동기화로 작동하는지 확실하지 않지만 --delete가 작동하려면 --recursive 매개 변수도 추가해야합니다.


Rclone is what you are looking for. Rclone ("rsync for cloud storage") is a command line program to sync files and directories to and from different cloud storage providers including local filesystems. Rclone was previously known as Swiftsync and has been available since 2013.

참고URL : https://stackoverflow.com/questions/2936627/two-way-sync-with-rsync

반응형