이 rsync 호출을 사용하여 홈 디렉터리를 백업합니다.
rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"
rsync 매뉴얼 페이지에 -a는 소유권을 유지해야 하는 -g 및 -o(및 기타 스위치)를 의미한다고 나와 있습니다. 그러나 디렉토리가 그 아래에 존재하지 않으면 $BACKUP_MNTPOINT/$USER_HOME
올바른 소유권 대신 루트:루트 소유권으로 생성된다는 것을 알았습니다. (이것은 바로 아래 디렉토리에서만 발생합니다 $BACKUP_MNTPOINT/$USER_HOME
). 왜 그런 겁니까?
$BACKUP_MNTPOINT
로컬로 마운트된 드라이브입니다. $BACKUP_MNTPOINT/$USER_HOME
올바른 소유권과 권한이 있어야 합니다. 슬래시 $USER_HOME
로 끝나지 도 않습니다 .$BACKUP_MNTPOINT
소스 및 대상 파일 시스템은 모두 XFS이며 런타임은 mkdir $BACKUP_MNTPOINT/$USER_HOME
예상 소유권을 가진 디렉터리를 생성합니다.
답변1
rsync
Backup System to Server를 사용하여 비슷한 문제가 발생했습니다. 나는 다음을 사용했다:
rsync -aAXSHPr \
-e ssh \
--rsync-path="sudo /usr/bin/rsync/" \
--numeric-ids \
--delete \
--progress \
--exclude-from="/path/to/file/that/lists/excluded/folders.txt" \
--include-from="/path/to/file/that/lists/included/folders.txt" \
/ USER@SERVER:/path/to/folder/where/backup/should/go/
해결책은 실제로 문제가 없다는 것입니다. rsync
잘못된 권한이 설정된 폴더가 생성된 것을 확인한 후 프로세스를 중단한 것 같습니다 . 핵심은 rsync
모든 하위 폴더와 파일을 동기화한 후에만 상위 폴더의 권한을 설정하는 것입니다.
답변2
strace/truss를 통해 rsync를 실행하고 chown() 시스템 호출에서 오류가 반환되는지 확인하고 chown()에 올바른 경로와 UID/GID가 있는지 확인하세요.