server
동기화를 유지 하려는 두 대의 컴퓨터에 거대한 모의 디렉터리가 있습니다 . cluster
기본 사례는 파일이 거의 변경되지 않지만 시뮬레이션이 완료되면 많은 대용량 파일이 즉시 변경되고 파일이 닫히자마자 동기화하고 싶습니다.
따라서 rsync와 함께 cronjob을 사용하는 것은 이상적이지 않다고 생각합니다. cronjob은 고정된 간격으로 rsync를 호출하기 때문에 아마도 너무 크거나 너무 작은 것을 선택할 것입니다. rsync는 저와 시뮬레이션 작업이 파일 수정 사항을 확인할 필요가 없기 때문에 rsync를 선택하는 것입니다. 숙제에 접근하는 유일한 사람.
그래서 내 생각은 inotify를 사용하는 것입니다(참조이 문제) 모의 디렉토리의 변경 사항을 감지하기 위해 반복하고그 다음에변경된 파일을 저장하려면 rsync로 포크하세요. 그러나 이것이 포크가 완료될 때 닫히는 파일을 실수로 건너뛰게 될지는 확실하지 않습니다. (그리고 아마도 방금 동기화된 파일을 다시 동기화하기 위해 rsync를 호출하는 inotify로 인해 무한 루프에 빠지게 될 수도 있습니다...) 따라서 거기에서 너무 많은 것을 시도하기 전에 질문을 반복합니다.
두 디렉터리를 연결하고 변경 사항이 발생하면 즉시 동기화하는 도구가 있습니까?
(기본적으로 이것은 오프라인 보관함과 같습니다.)
답변1
확인하다동기화.
Lsyncd는 로컬 디렉터리 트리 이벤트 모니터 인터페이스(inotify)를 모니터링합니다. 몇 초 동안 이벤트를 집계하고 결합한 다음 프로세스를 생성하여 변경 사항을 동기화합니다. 기본적으로 이는 rsync입니다. 결과적으로 Lsyncd는 비교적 설치가 쉽고 새로운 파일 시스템이나 블록 장치가 필요하지 않으며 로컬 파일 시스템 성능에 영향을 주지 않는 경량 라이브 미러링 솔루션입니다.
이것은 양방향으로 진행되지는 않지만 귀하의 질문에 따르면 귀하도 필요하지 않다는 것을 알고 있습니다. 양방향 동기화가 필요한 경우조화inotify 지원이 없다는 점을 제외하면 좋은 답변입니다. 또한 확인해 보세요.이 문제.
양방향 동기화의 세 번째 특징은DRBD, 메인라인 커널에 포함된 블록 수준 실시간 동기화 시스템입니다. 안타깝게도 거의 동기식이므로 빠른 인터넷 연결이 필요합니다.