rsync: chgrp "/backup/sql_backup/.backup-20210817mysql.tar.gz.nWPkhd"(내 애플리케이션에서) 실패: 작업이 허용되지 않음 (1)

rsync: chgrp "/backup/sql_backup/.backup-20210817mysql.tar.gz.nWPkhd"(내 애플리케이션에서) 실패: 작업이 허용되지 않음 (1)

사용자:-루트

/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 서비스를 루트로 실행하고 있는 것으로 보이지 않으며, 서비스를 실행하는 사용자가 소스 파일을 소유한 그룹의 구성원이 아닙니다.--archiversync/var/cache/backup/backup-20210817mysql.tar.gz

세 가지 가능한 해결책을 볼 수 있습니다.

  1. 스토리지 서버의 파일 시스템에서 확장된 속성을 사용할 수 있는지 테스트하고, 그렇다면 이를 사용하여 소유자/그룹 및 기타 유용한 메타데이터를 저장합니다.

     rsync -M--fake-super --numeric-ids -ahq ...
    

    이것이 최선의 해결책이 될 것입니다. 파일을 저장하고 복원하려면 항상 -M--fake-super--numeric-ids.

  2. 스토리지 서버에 기록된 메타데이터에서 소유자/그룹 ID를 제거합니다. 그런 다음 이 "수동" 복원에 대한 책임은 귀하에게 있습니다.

     rsync -ahq --no-o --no-g ...
    
  3. 스토리지 시스템에서 루트로 서비스를 실행합니다. 이는 Linux/UNIX 기반 운영 체제에서 서비스 소유자를 변경할 수 있고 위험을 감수할 수 있다고 가정합니다. 권장되지는 않지만 가능성으로 나열되어 있습니다.

관련 정보