이 특정 아카이브 구조를 유지하면서 2개 이상의 하드 링크된 폴더 트리 집합을 복사하는 Rsync의 작동 구문은 무엇입니까?

이 특정 아카이브 구조를 유지하면서 2개 이상의 하드 링크된 폴더 트리 집합을 복사하는 Rsync의 작동 구문은 무엇입니까?

이 특정 아카이브 구조를 유지하면서 2개 이상의 하드 링크된 폴더 트리 집합을 복사하는 Rsync의 작동 구문은 무엇입니까?

추신: SO 또는 SU SE에 더 적합합니까?

현재/샘플 폴더 구조 템플릿:

Base Folder (Source): 

C:\iMazing
   \Backups

    \{device A UDID} // Last backup of Device A (AL)
    \{device B UDID} // Last backup of Device B (BL)
    \iMazing.Versions 

       \Versions
          \{device A UDID} // Backup history of Device A (AL) 
          \{device B UDID} // Backup history of Device B (BH)
Base Folder (Destination): 

S:\ExtHDD\APPLE\iMazing.Backups  

    \{device A UDID} // Last backup of Device A (AL)
    \{device B UDID} // Last backup of Device B (BL)
    \iMazing.Versions 

       \Versions
          \{device A UDID} // Backup history of Device A (AH) 
          \{device B UDID} // Backup history of Device B (BH)


UDID 이름을 가진 폴더 아래의 폴더 트리

  • AL : {device A UDID} //디바이스 A의 마지막 백업
  • AH: {device A UDID} // A 기기의 백업 내역
  • AL과 AH는 그들 사이에 하드 링크가 있는 2개의 그룹을 형성합니다.
  • 우리는 한 번에 개별적으로 일하고 싶습니다.

Rsync를 사용하는 방법(Cygwin RSync 또는 언급된 Windows 변형 중 하나를 통해 권장):

  • 복사하다{AL + AH}와 같은 별도의 하드 링크 세트C 드라이브에서 S 드라이브로 동시에
    • 하드 링크 유지
    • 하위 트리 폴더 구조 유지
  • Windows 또는 NTFS 폴더 및 파일 구조에 문제를 일으키지 않습니다.

반품:

  • 단일 설정(하나의 RSync 명령)만 수행할 수 있습니까, 아니면 한 번에 여러 개의 지정된 설정을 수행할 수 있습니까?
  • 일반적으로 2개의 SET가 있습니다. 구조 내에 3개의 SET이 있는 경우(3개의 HL 폴더가 있는 SET) Rsync의 명령줄은 어떻게 변경됩니까?

UDID 폴더 이름을 사용한 실제/실제 예:

  • XL & XH는 함께 SET를 형성하는 하드 링크 폴더 트리입니다..
Base Folder (Source): 
C:\Users\UserName\AppData\Roaming\iMazing\Backups

  \f22ebcffcdd1b508d3f7564431a9db98d69208ef-20190414-170122 //..(XL)  
  \iMazing.Versions
   \Versions  
    \f22ebcffcdd1b508d3f7564431a9db98d69208ef-20190414-170122 //..(XH)

하드 링크 복사본 저장을 위한 참조 도구 목록:
https://superuser.com/questions/997190/copy-to-another-ntfs-disk-and-preserve-hard-links/

  • 동기화Windows에서의 변경 사항
    • (여러 *Nix 및 Windows: Cygwin 변형, CW RSync, Delta Copy/Syncrify/Synaman, GRsync, RsyncBackup, Rsync.exe pkg, Rclone, AcroSync, YInterSync)
  • ln.exe - 명령줄 하드 링크-http://schinagl.priv.at/nt/ln/ln.html(이기다)

답변1

이 질문에 대한 이전 반복을 이해하기 어려웠으므로 해당 작업 예와 함께 귀하가 의미하는 바를 단순화 된 버전으로 반복하겠습니다.

구조

C:\iMazing\Backups\
    AL\
        files...
    BL\
        files...
    iMazing.Versions\Versions\
        AH\
            files...
        BH\

S:\ExtHDD\APPLE\iMazing.Backups\
    AL\
        destination files...
    BL\
        destination files...
    iMazing.Versions\Versions\
        AH\
            destination files...
        BH\
            destination files...

요구 사항은 하드 링크와 상대 구조를 유지하면서 복사 AL\...하고 복사하는 AH\...것 입니다 C:.S:

실제 사례

mkdir -p iMazing/Backups/{AL,BL,iMazing.Versions/Versions/{AH,BH}} ExtHDD/APPLE/iMazing.Backups
touch iMazing/Backups/{AL/albackup,BL/blbackup}
touch iMazing/Backups/iMazing.Versions/Versions/{AH/ahbackup,BH/bhbackup}

이 시점에서 내가 한 일을 살펴볼 수 ls -R있습니다 . ,,,, 디렉토리에 , , 파일 find이 있어야 합니다 . 및 디렉토리를 대상에 복사합니다.albackupahbackupblbackupbhbackupALAHBLBHALAH

rsync --dry-run -avHPR iMazing/Backups/./AL iMazing/Backups/./iMazing.Versions/Versions/AH ExtHDD/APPLE/iMazing.Backups/

-R( ) 플래그는 --relative태그의 소스 경로를 유지합니다 /./. 예제에서 이는 iMazing/Backups/제거되고 나머지를 대상 경로에 추가하는 것을 의미합니다.

--dry-run삭제( ) 후에 -n는 내부 하드 링크와 구조를 유지하면서 소스 AL 및 AH 디렉터리의 파일과 디렉터리를 대상으로 복사합니다.

자주하는 질문

Cygwin이므로 슬래시를 사용해야 하며, 링크를 유지하려면 플래그( ) /cygdrive/{DriveLetter}를 포함해야 합니다 .-H--hard-links

rsync -aHR /cygdrive/C/iMazing/Backups/./AL /cygdrive/C/iMazing/Backups/./iMazing.Versions/Versions/AH /cygdrive/ExtHDD/APPLE/iMazing.Backups/

무슨 일이 일어나고 있는지 보려면 -v( --verbose) 및/또는 -P( ) 플래그를 포함할 수 있습니다. --partial --progress이 경우 악명 높은 "델타" 알고리즘이나 압축에 신경 쓰지 마세요(이러한 방법은 rsync네트워크의 클라이언트-서버 구성에 두 개의 서버가 포함된 경우에만 작동함). S: 드라이브를 호스팅하는 서버에서 인스턴스를 실행할 수 있다면 rsync훨씬 더 효율적일 것입니다.rsync

--dry-run실제로 아무것도 하지 않고 무슨 일이 일어나는지 보기 위해 추가되었습니다 .

관련 정보