그냥 차이점을 복사해 볼까요?

그냥 차이점을 복사해 볼까요?

한 디렉터리를 다른 디렉터리로 재귀적으로 복사하고 싶지만 차이점만 복사하고 싶습니다. 그 이유는 Solaris의 스냅샷 볼륨에서 이 작업을 수행하고 있기 때문입니다. 즉, 이미 100gig가 포함된 디렉토리에 100gig를 복사했지만 5gig만 다른 경우 전체 100gig를 해당 디렉토리에 복사하고 싶지 않습니다. 디스크를 200g의 데이터로 채웁니다(스냅샷은 100g의 새 데이터와 100g의 이전 데이터를 저장합니다).

나는 최종 결과가 105G의 공간(즉, 5G의 새 데이터와 100G의 이전 데이터)만 차지하기를 원합니다.

빠른 롤백 옵션이 필요하므로 스냅샷 삭제는 옵션이 아닙니다.

블록 단위로만 차이점을 복사해도 괜찮지만, 다르면 전체 파일을 복사해도 괜찮습니다.

대상의 파일에 최신 타임스탬프가 있을 수 있으므로 -u작동 하지 않습니다.cp

또한 원본 디렉터리와 대상 디렉터리가 서로 다른 볼륨에 있다는 점에 유의해야 합니다.

어떻게 해야 하나요?

답변1

Rsync는 귀하의 도구입니다:

rsync --archive source/ dest/

보관은 다음을 포함하는 복합 옵션입니다.

--recursive      # recurse into directories
--links          # copy symlinks as symlinks
--perms          # preserve permissions
--times          # preserve times
--group          # preserve group
--owner          # preserve owner
--devices        # preserve device files
--specials       # preserve special files

시스템에서 rsync를 사용할 수 없는 경우 rsync를 설치해야 합니다. 다른 도구를 사용하여 다른 솔루션을 만들 수도 있지만 이 작업을 잘 수행하는 프로그램을 찾고 있다면(제가 질문을 잘못 이해하지 않은 한) 찾고 있는 것은 rsync입니다.

답변2

블록 수준 복사를 원하는 경우 새 스냅샷을 생성하고 델타 스트림을 보낼 수 있습니다. 이는 UFS 스냅샷이 아닌 ZFS를 사용하고 있고 디렉터리가 해당 디렉터리가 있는 파일 시스템과 일치(충분히 유사)하다고 가정합니다.

관련 정보