rsync는 -a를 사용해도 디렉토리 소유권을 유지하지 않습니다.


12

이 rsync 호출을 사용하여 홈 디렉토리를 백업합니다.

rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"

rsync 매뉴얼 페이지에 -a는 -g 및 -o (다른 스위치 중에서)를 의미하며 소유권을 유지해야합니다. 그러나 디렉토리가 디렉토리 아래 $BACKUP_MNTPOINT/$USER_HOME에 존재하지 않으면 올바른 디렉토리 대신 root : root 소유권으로 작성됩니다. (이것은 바로 아래의 디렉토리에서만 발생합니다 $BACKUP_MNTPOINT/$USER_HOME). 왜 그런 겁니까?

$BACKUP_MNTPOINT로컬로 마운트 된 드라이브입니다. $BACKUP_MNTPOINT/$USER_HOME올바른 소유권과 권한이 있습니다. 슬래시로 끝나 $USER_HOME거나 $BACKUP_MNTPOINT끝나지 않습니다 .

소스 및 대상 파일 시스템은 모두 XFS이며 실행 중이면 mkdir $BACKUP_MNTPOINT/$USER_HOME소유권이 예상되는 디렉토리가 작성됩니다.


1
어떤 파일 시스템이 무엇 $BACKUP_MNTPOINT이고 어떤 옵션이 마운트되어 있습니까? 이것은 상위 ( $BACKUP_MNTPOINT/$USER_HOME) 디렉토리 또는 작성된 모든 디렉토리에 대해서만 발생합니까 ? 수행 $BACKUP_MNTPOINT$USER_HOME로 끝날 /?
terdon

/home백업 드라이브와 둘 다에 XFS를 사용 합니다. 지금까지는 부모 디렉토리에서만 발생했다고 생각합니다. 슬래시로 끝나 $BACKUP_MNTPOINT거나 $USER_HOME끝나지 않습니다 . 편집 : 나는 단지 바로 아래의 디렉토리에 발생 지금 확인할 수 있습니다$BACKUP_MNTPOINT/$USER_HOME
kralyk

그래서 $BACKUP_MNTPOINT/$USER_HOME올바른 권한을 가지고 있지만 하위 디렉토리하지? 제발 편집 질문을하고 이러한 세부 사항을 추가 할 수 있습니다. 또한 mkdir $BACKUP_MNTPOINT/$USER_HOME/foo수동으로 수행하는 경우 사용자가 소유 한 디렉토리를 작성 하는지 확인 하십시오.
terdon

예, mkdir $BACKUP_MNTPOINT/$USER_HOME/foo사용자 소유의 디렉토리를 만듭니다.
kralyk

strace(의사 답변에 지정된) 관련 정보를 보는 것이 정말 좋을 것 입니다.
Pavel Šimerda

답변:


18

rsync시스템을 서버에 백업 하는 데 사용할 때 비슷한 문제가 발생했습니다 . 나는 사용했다 :

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모든 하위 폴더와 파일의 동기화가 완료된 후에 만 ​​상위 폴더의 권한을 설정 한다는 것입니다.


1
와우, 그것은 나에게 전혀 발생하지 않았으며, 멋지게 발견되었습니다. 감사합니다.
kralyk

0

아마도 strace / truss를 통해 rsync를 실행하고 chown () syscall에서 오류가 발생했는지 확인하고 chown ()에 올바른 경로와 UID / GID가 있는지 확인하십시오.


좋은 의견이지만 대답은 아닙니다.
Pavel Šimerda
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.