파일 소유권을 유지하면서 서버에서 로컬 홈 폴더로 rsync

파일 소유권을 유지하면서 서버에서 로컬 홈 폴더로 rsync

파일 소유권을 유지하면서 웹사이트를 내 홈 폴더에 백업했습니다.

rsync -az  [email protected]:/www/site ~/backup

내가 이해한다면 -a 옵션은 -rlptgoD와 동일합니다. 여기서 -o와 -g는 소유자와 그룹을 유지합니다. 옳은?

백업할 파일은 모두 admin(공유 호스팅)이 아닌 user:user로 설정되어 있습니다.

명령을 실행하면 로컬 컴퓨터의 파일이 모두 내 로컬 사용자: 그룹에 있도록 변경됩니다.

기본적인 질문은 파일의 원래 소유권을 유지하는 방법입니다. 아니면 내가 잘못된 방식으로 접근하고 있는 걸까요? 그리고 파일의 무게를 측정한 다음 전송해야 합니까?

답변1

이미 파일을 소유하고 있거나 루트가 아니면 파일 소유권과 그룹을 유지할 수 없습니다. (이는 파일이 "유출"될 수 없다는 원칙과 일치합니다.) 이 --fake-super플래그를 사용하여 확장된 속성에 소유권과 그룹을 기록할 수 있으므로 충분한 권한으로 복원하는 경우 이전에 저장된 값을 복원할 수 있습니다.

# Backup
rsync -az --fake-super [email protected]:/www/site ~/backup

# Restore
rsync -az --fake-super ~/backup [email protected]:/www/site

원격 시스템에 루트로 로그인할 수 없지만 sudo비밀번호를 입력하지 않고 실행할 수 있는 경우 명령줄을 다음과 같이 수정할 수 있습니다.

# Restore via sudo
rsync -az --fake-super --rsync-path='sudo rsync' ~/backup [email protected]:/www/site

--fake-super플래그는 또한 대상 시스템에 존재하지 않는 사용자 및 그룹 이름과 관련된 문제를 방지합니다(비록 --numeric-ids사용하지 않기로 결정한 경우의 옵션임 --fake-super). 실제로 백그라운드에서 실행되고 있다는 것을 깨닫기 전까지는 대상 시스템에서 조금 이상하게 보입니다. 예를 들어, 백업되면 기호 링크는 더 이상 기호 링크가 아닙니다.

한 가지 잠재적인 문제는 rsyncUID/GID 대신 이름으로 소유자 및 그룹 정보를 복사하는 것을 선호한다는 것입니다. 대상 시스템에 이러한 이름이 없으면 문제가 발생할 수 있습니다. 다행히도 이 --numeric-ids플래그를 사용하면 rsync이름이 아닌 UID/GID로 복사할 수 있습니다.

관련 정보