대상에 대한 rsync 및 쓰기 권한

대상에 대한 rsync 및 쓰기 권한

rsync파일이 있는 원격 위치로 파일을 전송하려는 이유가 무엇인지 궁금합니다.읽기/실행대상 디렉토리에 대한 권한이 있지만 권한은 없습니다.쓰다실제 대상 파일을 생성하기 위한 권한입니다. 일반 사용자로 파일을 복사하려고 할 때/, rsync전체 파일을 전송하고(대용량 파일의 경우 시간이 꽤 오래 걸림) 결국 실패합니다.

rsync: mkstemp "/.myTargetFile" failed: Permission denied (13)

따라서 임시 파일을 만들려고 할 때(가리키다-파일) 전송 중. 쓰기 권한 없이 전체 파일을 복사하려고 시도하는 대신 이를 알아채지 못하고 일찍 중단하는 이유는 무엇입니까?

임시 파일을 생성할 수 없으면 파일을 어디에 복사합니까? rsync 프로세스나 해당 파일에 대한 메모리 증가가 표시되지 않습니다./tmp. 목적지의 데이터는 단순히 폐기되는 것처럼 보이지만 전송은 계속됩니다.

답변1

쓰기 권한 없이 디렉터리에 복사해야 하는 경우 --inplace명령 옵션에 추가하세요. 임시 복사본을 생성하지 않고 업데이트 프로세스 중에 파일을 일관되지 않은 상태로 유지하기 때문에 비용이 더 저렴한 경우도 있습니다.

자체 권한을 미리 확인하지 않는 이유에 대한 질문과 관련하여 확장 액세스 ACL과 같은 일부 추가 세부 정보가 누락될 수 있으므로 rsync는 표준 3*3+3 구성표를 신뢰하지 않습니다. OTOH 이 의도적인 정책은 결과에 실제 영향을 미치지 않습니다. 어쨌든 파일은 업데이트되지 않습니다.

답변2

이는 현재 rsync 프로토콜의 단점인 것 같습니다.버그 추적기. rsync 프로토콜은 대상에 대한 쓰기 권한이 있는지 미리 확인할 수 없습니다. 대신 나중에 성공 또는 실패를 보내고 확인합니다.

답변3

/Rsync는 대상 파일과 동일한 폴더에 임시 파일을 생성하므로 이 경우 루트로 시작하지 않았으므로 일부 파일을 에 복사해야 하며 일반적으로 /루트로만 쓸 수 있으므로 실패합니다.

어떤 파일이 복사되고 있는지 확인하려면 매개변수를 전달하세요.-v

관련 정보