사용자:-루트
/usr/bin/rsync -hprltaq --include '*/' --include '*.gz' --exclude '*' "/var/cache/backup/backup-20210817mysql.tar.gz" <storage_IP>::my-app/backup/sql_backup/
오류: -->
rsync: chgrp "/backup/sql_backup/.backup-20210817mysql.tar.gz.nWPkhd" (in my-app) failed: Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]
rsync에서 오류가 발생하더라도 파일은 대상(스토리지 서버)에 복사됩니다.
스토리지 서버에 대한 권한
ls -al backup/
drwxr-xr-x 9 nobody nogroup 4096 Oct 3 2020 .
drwxr-xr-x 81 nobody nogroup 12288 Aug 17 08:00 ..
drwxrwxrwx 2 nobody nogroup 4.0K Aug 17 12:54 sql_backup
777 권한도 시도했지만 동일한 오류가 발생했습니다.
답변1
지정한 ( ) 플래그 -a
에는 대상 파일/디렉토리의 소유자 및 그룹을 소스 프로젝트의 소유자 및 그룹으로 설정하라는 요청이 포함됩니다. 스토리지 서버가 rsync 서비스를 루트로 실행하고 있는 것으로 보이지 않으며, 서비스를 실행하는 사용자가 소스 파일을 소유한 그룹의 구성원이 아닙니다.--archive
rsync
/var/cache/backup/backup-20210817mysql.tar.gz
세 가지 가능한 해결책을 볼 수 있습니다.
스토리지 서버의 파일 시스템에서 확장된 속성을 사용할 수 있는지 테스트하고, 그렇다면 이를 사용하여 소유자/그룹 및 기타 유용한 메타데이터를 저장합니다.
rsync -M--fake-super --numeric-ids -ahq ...
이것이 최선의 해결책이 될 것입니다. 파일을 저장하고 복원하려면 항상
-M--fake-super--numeric-ids
.스토리지 서버에 기록된 메타데이터에서 소유자/그룹 ID를 제거합니다. 그런 다음 이 "수동" 복원에 대한 책임은 귀하에게 있습니다.
rsync -ahq --no-o --no-g ...
스토리지 시스템에서 루트로 서비스를 실행합니다. 이는 Linux/UNIX 기반 운영 체제에서 서비스 소유자를 변경할 수 있고 위험을 감수할 수 있다고 가정합니다. 권장되지는 않지만 가능성으로 나열되어 있습니다.