이것을 사용하여 원격 파일을 백업하려고 하는데 rsync
원격 시스템의 UID/GID가 로컬 시스템과 다릅니다. 내가 무엇을 시도하든 내 모든 로컬 파일은 "opux/opux"이고 해당 *ID는 1000입니다. 이것은 내 rsync입니다.
sync -e "ssh" --rsync-path="sudo rsync" -AXSHavz --progress --numeric-ids pi@rpinfs:/mnt/mainhdd/dospace/ --exclude 'videos' ~/backups/dospace/
나는 이것을 시도했지만 첫 번째는 "작업이 허용되지 않음" --super
을 --fake-super
표시하고 두 번째는 아무것도 하지 않는 것 같습니다. 나는 무엇을 해야 합니까?
모든 메타데이터를 유지하면서 백업을 수행하는 한 가지 방법은 tar를 사용하는 것이라는 것을 알고 있지만 원격 백업에서는 제대로 작동하지 않는 것으로 알고 있습니다. 저는 실행하기 간단하고 이상적으로는 로컬 시스템에서 루트로 실행할 필요가 없는 것을 원했습니다.
원격 시스템은 Raspbian을 실행하는 Raspberry Pi이므로 로그인한 사용자는 루트뿐입니다. 내 로컬 시스템은 Ubuntu 16.04 AMD64입니다.
답변1
원격에서 데이터를 전송하는 경우 원격일 필요가 없습니다 root
(SSH 사용자에게 영향을 받는 모든 파일에 대한 읽기(디렉토리: 실행) 권한이 없는 경우는 제외).
그러나 rsync가 파일의 소유자(및 그룹)를 로컬로 변경하도록 하려면 정상적으로 실행되어야 합니다 root
. 예외: 모든 파일과 디렉터리가 동일한 사용자(일반적으로 로컬에서 rsync를 실행하는 사용자가 아님)에 속하는 경우 해당 사용자로 rsync를 실행할 수 있습니다.
rsync
또 다른 해결책은 파일 메타데이터에 전혀 신경 쓰지 않고 별도로 처리하는 것입니다.
getfacl --recursive /mnt/mainhdd/dospace
하지만 일부 작업은 로컬에서 실행되어야 합니다 root
. 달리는 것이 달리는 setfacl
것보다 나은지 여부는 흥미로운 질문 입니다 …root
rsync
root