rsync를 사용하여 두 개의 외장 하드 디스크를 동기화하면 권한 오류가 계속 나타납니다.

rsync를 사용하여 두 개의 외장 하드 디스크를 동기화하면 권한 오류가 계속 나타납니다.

자동화기를 사용하여 사무실에 있는 사용자를 위한 rsync 스크립트를 설정하려고 하는데 계속 오류가 발생합니다. 나는 가장 간단한 코드 줄부터 시작했습니다.

 rsync -a /Volumes/DiskA/ /Volumes/DiskB

하지만 계속해서 다음 오류가 발생합니다.

rsync: opendir "/Volumes/DiskA/.Trashes" failed: Permission denied (13)
rsync error: some files could not be transferred (code 23) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/main.c(992) [sender=2.6.9]

인터넷 전체를 검색하고 다양한 방법/코드를 시도했지만 여전히 오류가 발생합니다. 또한 새로 설치를 시도하고 하드 드라이브를 포맷했습니다. 이 문제를 해결한 후 다른 명령을 추가할 계획입니다. 이 문제를 해결하는 데 도움을 주시면 매우 감사하겠습니다.

답변1

여기에는 두 가지 문제가 있을 수 있습니다.

  1. 귀하의 스크립트에는 diskA 휴지통에 있는 파일에 액세스할 수 있는 충분한 권한(권한)이 없습니다. 이는 OSX인 것으로 보이므로 루트 액세스 권한을 얻는 방법 sudo이나 su다른 UNIX 유사 플랫폼에서 사용한 방법에 대해 조언할 수 없습니다 .

  2. 어쨌든 "휴지통"을 복사하고 싶지 않을 것입니다. 이렇게 하려면 옵션을 추가하세요 --exclude '/.Trashes'.rsync

답변2

제 경우에는 특정 파일에 대한 ACL 규칙이었습니다. getfacl /folder/file확장 규칙을 보려면 실행하세요 (설정된 경우).

제 경우에는 일부 파일에 확장된 권한 규칙이 있어서 rsync읽을 수 없었습니다.

답변3

나도 같은 문제를 겪었고 rsync 옵션을 더 신중하게 선택해야 한다고 생각합니다. 이 옵션은 -a과 동일하므로 -rlptgoDrsync디스크에서 다른 디스크로 파일의 권한, 소유자 및 그룹을 보존하려고 시도합니다. 예를 들어 백업의 경우 다음 옵션을 사용합니다.

rsync -urtDvx --delete /volume/diskA/ /volume/diskB/

그것은 나에게 잘 작동합니다. 이러한 옵션의 의미는 다음과 같습니다.

 -u, --update                skip files that are newer on the receiver
 -r, --recursive             recurse into directories
 -t, --times                 preserve modification times
 -D                          preserve special and device files (super-user only)
 -v, --verbose               increase verbosity
 -x, --one-file-system       don't cross filesystem boundaries
 --delete                    delete extraneous files from dest dirs

rsync어떤 옵션이 귀하에게 가장 적합한지 알아보려면 설명서를 확인하는 것이 좋습니다 .

관련 정보