권한 관련 문제 없이 rsync를 사용하여 개인 파일을 외장 하드 드라이브나 네트워크 드라이브에 백업하려면 어떻게 해야 합니까?

권한 관련 문제 없이 rsync를 사용하여 개인 파일을 외장 하드 드라이브나 네트워크 드라이브에 백업하려면 어떻게 해야 합니까?

배경

rsync를 사용하여 데이터를 백업하는 "올바른" 방법은 무엇입니까? 제가 "올바른" 방법을 요청하는 이유는 과거 rsync 사용 경험으로 인해 권한, 파일/폴더 마스크 및 타임스탬프 관련 문제가 발생했기 때문입니다. 그러므로 이 질문은 이해하려고 노력합니다.주로 Windows 시스템에서 rsync를 사용하는 경우 권한, 파일/폴더 마스크 또는 타임스탬프 관련 문제 없이 rsync를 사용하여 데이터를 백업하려면 어떻게 해야 합니까?.

이 질문에 대한 또 다른 동기는 내가 내 일에 빠지지 않도록 하는 것입니다.이전 호cygwin을 통해 rsync로 백업된 외부 드라이브의 파일에 액세스할 수 없었습니다. 실제로 메인 PC의 데이터가 손실되어 백업에서 복원하려고 했기 때문에 이것은 악몽이었습니다.

다음은 rysnc를 사용할 때 겪었던 유사한 문제입니다.

rsync 사용법에 대한 나의 이해는 중간 수준이며 아래 나열된 가이드를 참조했습니다. 그러나 rsync 사용에 대한 가장 큰 혼란은 권한, 파일/폴더 마스킹, Posix 등에서 비롯됩니다.

요구사항/가정

  • "동기화" 컨텍스트가 아닌 "백업" 컨텍스트에서 rsync를 사용하고 싶습니다. 종종 rsync와 관련된 질문을 하는 다른 사용자는 동기화된 다른 PC에 파일의 작업 복사본이 있는지 확인하기 위해 데이터를 "동기화"하는 데 관심이 있을 수 있습니다. 그러나 내 의도는 "동기화"가 아니라 단순히 "백업"을 위한 것이므로 내 PC에 무슨 일이 발생하면 마지막 백업 복사본을 가져와 복원할 수 있습니다.
  • 백업해야 하는 원본 파일은 모든 운영 체제(예: Windows, Ubuntu, MacOS)에 존재할 수 있지만 주로 Windows에 있습니다.
  • Windows에서 rsync는 cygwin을 통하지 않고 WSL(Linux용 Windows 하위 시스템)을 사용하여 사용됩니다.
  • 백업 대상은 NTFS, FAT32 또는 exFAT로 포맷된 외부 드라이브이거나 네트워크 드라이브(예: Samba 공유)일 수 있습니다.
  • 필수는 아니지만 SSH를 사용하여 대상에 연결할 수 있습니다.

내 현재 방법 및 문제

Windows 10에서 WSL(Linux용 Windows 하위 시스템)을 통해 rsync를 사용하고 있습니다. 다음은 제가 겪은 문제의 예입니다.

예시 1:작동 안함

rsync -avhP --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

이 방법을 사용하면 파일이 전송되지 않고 아래와 같은 오류가 발생합니다.

rsync: chgrp "/mnt/my_usb_mount/ProjectA/src" failed: Operation not permitted (1)

그리고

rsync: mkstemp "/mnt/my_usb_mount/ProjectA/src/.mydata.json.6cfTCf" failed: Operation not permitted (1)

예 2:부분적으로 작업 중

rsync -avhP --no-p --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

또는

rsync -avhP --no-p --chmod=ugo=rwX --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

rysnc를 사용하는 이 방법을 사용하면 파일이 전송되지만 타임스탬프(생성, 수정, 액세스)는 모두 전송 시간으로 설정됩니다. rsync 명령을 다시 실행하면 모든 파일이 수정된 것으로 감지되고 잘못된 타임스탬프 때문에 다시 전송됩니다. 게다가 아래와 같은 오류가 발생합니다.

rsync: chgrp "/mnt/my_usb_mount/ProjectA/src" failed: Operation not permitted (1)

예시 3:올바르게 작동합니다.

sudo rsync -avhP --delete /mnt/c/Users/MyUsername/ProjectA /mnt/my_usb_mount/Backup

이 방법은 완벽하게 작동하지만 왜 사용해야 하는지 이해가 되지 않습니다 sudo. WSL을 통해 Windows에서 rsync를 사용하고 있기 때문인가요? sudoLinux PC(예: Ubuntu)에서 파일을 백업하는 경우 사용해야 합니까 ?

예제 3은 효과적인 솔루션이지만 여전히 궁금한 점이 많습니다.

  • sudo언제 필요한지 어떻게 알 수 있나요 ?
  • 언제 사용합니까 --no-p?--chmod=ugo=rwX
  • 사용할 권한이 없으면 어떻게 되나요 sudo?
  • 파일을 네트워크 드라이브에 백업하는 경우에도 작동합니까?
  • SSH를 사용하는 경우에는 어떻게 되나요?
  • WSL을 통해 Windows에서 rsync를 사용할 때 이상한 권한이나 파일/폴더 마스크 문제가 발생할 수 있나요?이전에?

답변1

Ntfs와 fat은 Linux 권한에 신경 쓰지 않으므로 파티션 ext4에 백업해야 합니다.

또는 백업을 만들어 tar.gz로 압축한 다음 Linux 시스템 파일에 압축을 풀고 복원하세요.

관련 정보