rsync를 사용하여 두 폴더를 동기화 상태로 유지

rsync를 사용하여 두 폴더를 동기화 상태로 유지

두 개의 외부 드라이브가 있습니다. 드라이브 중 하나의 이름은 "drive2"이며 "Music"이라는 폴더가 포함되어 있습니다. 폴더의 구조는 다음과 같습니다.

drive2/
    /Music/
           Pink Floyd/
                      1982 - Album Name/
                                        01 - Track.flac
                                        02 - Track2.flac
                                        and so on..

그래서 폴더 계층 구조로 인해 재귀적으로 동기화해야 할 것 같습니다.

드라이브 2에서 드라이브 1로 전체 폴더를 복사해야 합니다 Music. 나는 다음과 같은 것을 사용할 수 있다고 생각합니다.

rsync -av drive2/Music/ drive1/Music/

그러나 어떤 경우에는 특정 노래의 메타데이터를 수정합니다. 이러한 메타데이터 수정은 앨범 제목 변경과 같이 사소합니다. 이러한 수정으로 인해 FLAC 파일의 크기가 반드시 변경되는 것은 아니지만 메타데이터 변경으로 인해 md5 지문이 확실히 변경됩니다. 옳은?

이 유틸리티를 사용했을 때 유틸리티가 드라이브 2의 FLAC 파일에 대한 메타데이터 변경 사항을 감지하고 드라이브 1의 파일을 업데이트하여 동기화를 유지했다는 사실을 발견 rsync -a했습니다 rsync. 변경된 파일만 전송되는데, 이것이 바로 제가 원하는 동작입니다. 이 -a (archive)플래그는 -u변경된 파일만 업데이트된다는 의미인 것 같습니다 .

rsync그런데 업데이트된 메타데이터가 포함된 파일을 전송할 때 드라이브1에서 이전 파일을 완전히 덮어쓰게 되는지 궁금합니다 . 완전히 교체되었다는 뜻인가요? 새 파일을 복사하기 전에 이전 파일을 삭제하셨나요?

답변1

rsync가 업데이트된 메타데이터로 파일을 전송하면 드라이브1의 이전 파일을 완전히 덮어쓰게 됩니까?

예. 기본 동작은 현재 대상 위치에 있는 파일을 임시 위치로 복사하는 것입니다. 그런 다음 해당 복사본에 필요한 업데이트를 수행합니다. 업데이트가 완료되면 복사본의 이름이 올바른 파일로 변경되고 이전 파일은 삭제됩니다.

새 파일을 복사하기 전에 이전 파일을 삭제하셨나요?

업데이트되는 단일 파일의 경우 기본값은 복사/업데이트가 완료된 후에만 파일을 덮어쓰는 것입니다.

소스에서 삭제된 파일의 경우 데이터 업데이트/전송 전, 도중 또는 후에 해당 파일을 삭제할지 여부를 제어할 수 있습니다.

답변2

Rsync는 이전 파일을 새 파일로 변환합니다. 그렇게 하기 전에 수신자는 두 파일 블록의 체크섬을 알게 됩니다.

https://www.cs.tufts.edu/~nr/rsync.html#toc6

답변3

rsyncNautilus보다 네트워크를 통해 복제할 수도 있는 매우 우수한 백업 및 일반 복제 도구입니다.

하지만 rsync설정 동기화는 백업만큼 간단하지 않습니다. 원한다면 시도해 볼 수 있습니다 unison. 전용 동기화 도구입니다.

관련 정보