성공적으로 사용했습니다동기화내 노트북과 넷북 사이의 홈 디렉토리를 동기화합니다(둘 다 Linux에서 ext4 사용). 내 유일한 문제는 때때로 특정 디렉토리를 완전히 재구성하고 싶다는 것입니다.동기화이것을 새 파일을 삭제하고 생성하는 것으로 생각하면 매우 느리고 비효율적입니다.
파일 이동을 잘 처리하는 소프트웨어를 아는 사람이 있습니까?
내가 찾은일관된할 수 있어야 하는데 실제로는 안되는 것 같습니다. 나는 테스트했다일관된각 디렉토리에 큰 파일이 있는 두 개의 로컬 디렉토리를 동기화함으로써 내 이동이 삭제 + 생성임을 감지하고 실제로는동기화.
그리고 내 기억이 맞다면일관된몇 달 전의 소스 코드에서는 sha sum과 같은 작업을 시도하지만 이상적인 솔루션이 sha sum을 수행하는 것을 원하지 않습니다. 대용량 파일/디렉토리의 경우 너무 느립니다. 나는 다음과 같은 것을 알아차리는 것을 원합니다.
"이 파일의 마지막 소스 대응 부분이 삭제된 것으로 보이며 소스 디렉터리 트리의 다른 곳에 동일한 mdate, 크기 및 inode 번호를 가진 새 파일이 있으므로 이것이 이동이라고 가정하고 대상을 이동합니다. 삭제+복사를 수행하는 대신 그에 따라 복사하세요."
이러한 컴퓨터를 신속하게 동기화할 수 있다는 것은 나에게 중요합니다.
어떤 제안이 있으십니까?
답변1
너는 좀 봐야 해rdiff 백업내부적으로는 이를 rsync
수행하지만 필요한 추가 지능을 제공합니다(증분 백업을 롤백할 수 있지만 비활성화되도록 구성할 수 있음).
최신 버전은 오래된 버전(2009)이지만 이는 안정성을 의미합니다.
답변2
Unison은 원하는 것을 할 수 있지만 원격으로만 가능합니다. ssh://localhost/path/to/dir
뿌리 중 하나로 사용해 보세요 .
Unison은 파일 내용을 기반으로 결정을 내리지만 inode 번호를 추적하지는 않습니다.
답변3
소스 및 대상 디렉터리의 파일 시스템이 하드 링크를 지원하는 경우 rsync를 사용하여 이동되고 이름이 바뀐 파일을 처리할 수 있습니다. 아이디어는 실제로 하드 링크를 전송하기 전에 rsync가 하드 링크를 다시 작성하도록 하는 것입니다. 좋은 설명을 찾을 수 있습니다여기
우리는 소스/대상 디렉토리에 하드 링크의 숨겨진 트리를 생성하는 간단한 솔루션으로 끝났습니다. 기본 스크립트는 다음과 같습니다.
# Name of hidden directory
Shadow=".rsync_shadow"
# do real sync
rsync -ahHv --stats --no-inc-recursive --delete --delete-after "$Source"/ "$Target"
# update/create hidden dir of hard links in source
rsync -a --delete --link-dest="$Source" --exclude="/$Shadow" "$Source"/ "$Source/$Shadow"
# update/create hidden dir of hard links in target
rsync -a --delete --link-dest="$Target" --exclude="/$Shadow" "$Target"/ "$Target/$Shadow"
샘플 스크립트가 있습니다GitHub. 하지만 프로덕션에서 이 방법을 사용하기 전에 광범위한 테스트를 수행하는 것이 좋습니다.
답변4
질문은 오래되었지만 관련이 있습니다.
이것은 당신이 찾고 있는 도구입니다: 재동기화 도우미
이는 3가지 유형의 변경 사항을 동기화합니다.
- 파일 수정 타임스탬프 변경(Exiftool을 사용하여 사진의 타임스탬프를 일괄 변경하는 경우)
- 파일/디렉토리 이름 바꾸기
- 한 디렉터리에서 다른 디렉터리로 파일 이동
실행되도록 설계되었습니다.앞으로rsync가 이미 실행 중입니다.
면책 조항: 저는 위 도구의 작성자입니다.