파일이 수정 될 때마다 즉시 복제되도록 파일 시스템 감시자와 두 컴퓨터간에 폴더를 동기화


20

나는 가지고있다:

  • IP 203.0.113.0 포트 1234에서 SSH를 통해 연결하는 Linux 서버

  • 가정용 컴퓨터 (라우터 뒤에 있음), 공개 IP 198.51.100.17 (데비안 또는 Windows + Cygwin)

폴더를 /home/inprogress/ (양방향으로) 동기화 하는 것이 가장 쉬운 방법은 rsync아니지만 파일 시스템 감시자와 함께 파일을 수정할 때마다 즉시 다른쪽에 복제됩니까? (즉, 수동으로 동기화 프로그램을 호출 할 필요가 없음)

서버가 헤드리스이므로 명령 줄 / GUI가없는 솔루션을 찾고 있습니다.

리눅스 / 데비안 내장 솔루션이 있습니까?


7
당신은 설명하고 syncthing있습니다.
Kusalananda

lsync있지만 양방향 동기화에 유용하게 작동하는지 모르겠습니다.
Ulrich Schwarz

lsync, csync2, inotify + rsync이지만 로컬 네트워크 설정에서 사용하는 것이 좋습니다.
Rui F Ribeiro

2
파일 시스템 수준에서 이것은 OCFS2 또는 심지어 NBD를 통한 RAID 1처럼 들립니다
roaima

3
단방향 동기화가 쉽습니다. 양방향 동기화는 충돌 해결을 의미합니다 (예, 어느 시점에서 발생합니다). 이는 일종의 UI를 의미합니다 (GUI는 필요하지 않음).
jcaron

답변:


23

@ Kusalananda의 의견에 따라 마침내이 유스 케이스에 대해 Syncthing 을 테스트하는 데 몇 시간을 보냈으며 훌륭하게 작동합니다. 자동으로 양쪽의 변경 사항을 감지하고 복제 속도가 매우 빠릅니다.

예 : server.py즐겨 사용하는 메모장 소프트웨어에서 로컬로 작업하고 있다고 가정하고 CTRL + S (저장)를 누르십시오. 몇 초 후에 팝업 대화 상자없이 원격 서버에 자동으로 복제됩니다.

내가 주목 한 것 중 하나는 동기화를 사용하여 가정용 컴퓨터와 서버의 IP에 대해 생각할 필요가 없다는 것입니다. 각 "장치"(컴퓨터, 서버, 전화 등)에는 고유 한 DeviceID가 있으며 공유하는 경우 다른 장치와의 ID는 서로 연결하는 방법을 자동으로 알아냅니다.

할 것:

  • 가정용 컴퓨터 측 (Windows 또는 Linux) :

    일반적인 동기화 브라우저 내 구성 도구를 사용하십시오.

  • VPS 측 :

    먼저 포트 포워딩으로 VPS를 연결하십시오.

    ssh <user>@<VPS_IP> -L 8385:localhost:8384
    

    후자의 옵션은 포트 8384에서 수신 대기하는 VPS의 동기화 웹 구성 도구를 가정용 컴퓨터의 포트 8385로 리디렉션합니다.

    그런 다음 VPS에서이를 실행하십시오.

    wget https://github.com/syncthing/syncthing/releases/download/v0.14.52/syncthing-linux-amd64-v0.14.52.tar.gz 
    tar xvfz syncthing-linux-amd64-v0.14.52.tar.gz
    nohup syncthing-linux-amd64-v0.14.52/syncthing &
    

    그런 다음 가정용 컴퓨터의 브라우저에서 http : // localhost : 8385를 엽니 다 . 이것이 VPS의 동기화 구성입니다!


내가 시도한 다른 솔루션 :


방금 확인한 동기화의 추가 장점 :

  • 당신은 줄일 수 있습니다 fsWatcherDelaySconfig.xml에서 102초 그래서 이초 나중에 CTRL + S를 수행 한 후 (업로드에 시간 +, 즉 적은 작은 텍스트 파일 1 초 이상)는 다른 컴퓨터에의

  • 동일한 로컬 네트워크에있는 두 대의 컴퓨터를 동기화하는 경우 (단, 로컬로 IP 주소를 신경 쓸 필요없이 서로에게 장치 ID를 제공함으로써) 인터넷을 통해 전송하지 않아도 자동으로 알 수 있지만 현지 거래. 이는 훌륭하고 phone <--> computerWiFi를 통해 동일한 홈 라우터에 연결된 둘 다 의 매우 빠른 속도 전송 (4MB / s!) 동기화를 허용 합니다. ... 드롭 박스 동기화를 사용하여 ADSL에서 100KB / s로 고정됩니다. ! (내 ADSL은 업로드시 100KB / s로 제한됩니다)


@sudodus 친구가 이미 몇 주 전에 나에게 그것을 추천했으며 컴퓨터 <-> 전화 동기화를 위해 시도했지만 개발 서버에서도 그렇게 잘 작동하지 않을 것이라고 생각했습니다! 코드를 편집하고 저장하십시오. 1 2 3 다른 컴퓨터에 있습니다!
Basj

1
+1. 나는 꽤 오랫동안 같은 문제가 있었고 수년간 rsync + 일부 스크립트를 사용했으며 마침내 2 개월 전에 동기화, csync, unison 및 기타 몇 가지를 시도했습니다. 많은 컴퓨터에서 작동하며 일부는 영구 네트워크 연결이없는 경우에도 효과적입니다. 100 % 추천 할 수 있습니다.
Guntram Blohm은 Monica

1
@GuntramBlohm의 다양한 솔루션을 모두 테스트 해 주셔서 감사합니다! 동기화, rsync, csync, unison 등 각각의 장단점에 대한 피드백 / 비교를 제공하기 위해 답변을 게시 할 시간이 몇 분 있으면 나중에 참조하기에 매우 흥미로울 것입니다!
Basj

16

같은 사운드 한마음이 작업을 수행해야합니다.

Unison은 OSX, Unix 및 Windows 용 파일 동기화 도구입니다. 파일 및 디렉토리 모음의 두 복제본을 다른 호스트 (또는 동일한 호스트의 다른 디스크)에 저장하고 개별적으로 수정 한 다음 각 복제본의 변경 사항을 다른 복제본으로 전파하여 최신 상태로 유지할 수 있습니다.

충돌을 좀 더 쉽게 해결할 수있는 GUI (선택 사항)가 있지만 텍스트 기반 사용자 인터페이스를 사용하여 모든 작업을 수행 할 수도 있습니다. 완전 무인 작업을 위해 충돌을 해결하는 방법을 미리 정의 할 수도 있습니다.

필요할 때마다 동기화를 트리거하는 파일 감시자 (fsmonitor) 구성 요소가 있습니다. 자세한 내용 은 설명서 에서 "반복 시계"를 검색 하십시오.

데비안이 올바른 버전 (2.48+)을 상자에 포장 한 것 같습니다 .


감사! 파일 감시자 fsmonitor가 Unison과 함께 제공됩니까? 아니면이 도구를 설치하고 Unison과 수동으로 연결해야합니까?
Basj

1
@Basj 최신 버전에 포함되어 있으며 설정하기가 쉽지 않습니다. 설명서에 대한 링크를 추가했습니다.
TooTea

예전에는 오래된 Mac에서 사용했습니다. 그것은 최소한의 번거 로움으로 작동합니다. 서버 시나리오에 적합한 지 모르겠습니다.
Rui F Ribeiro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.