rsync
일부 소스 코드를 복사 하곤 했습니다 . 복사된 코드는 코드 편집 시 나의 실수로 인해 대상 위치에서 수정되어서는 안 됩니다. 그래서 --chmod=u-w
복사한 후에만 읽을 수 있도록 플래그를 설정했습니다 .
rsync --delete -a --chmod=u-w
첫 번째는 잘 작동한다는 것입니다. 하지만 두 번째부터는 rsync
대상이 읽기 전용이므로 복사를 수행할 수 없습니다.
rsync: delete_file: unlink "/path/file1" failed: Permission denied (13)
rsync: delete_file: unlink "/path/file2" failed: Permission denied (13)
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(992) [sender=2.6.9]
rsync
읽기 전용이든 쓰기 가능이든 모든 파일을 강제로 덮어쓸 수 있는 기능이 있다고 생각합니다 .
어떻게 해야 하나요?
답변1
복사한 코드는 목적지에서 수정되어서는 안 됩니다.
오류: 복사된 파일은 다음에 rsync가 실행될 때 대상에서 수정되어야 합니다. Unix 권한은 전용 사용자로 rsync 작업을 실행하지 않는 한 "rsync로만 수정 가능"을 표현할 수 없습니다.
Rsync는 해당 파일이 포함된 디렉터리가 읽기 전용이므로 해당 파일을 삭제할 수 없습니다. 이를 방지하려면 일반 파일에만 적용할 F
접두사를 추가하세요.--chmod
rsync --delete -a --chmod=Fa-w
파일 권한을 변경하지 않으면 더 나은 서비스를 받을 수 있습니다. 파일에 대한 읽기 전용 액세스를 제공해야 하는 경우 rsync 작업을 전용 사용자로 실행하고 다른 사용자에게 디렉터리 트리에 대한 읽기 전용 액세스 권한을 부여하십시오( --chmod=go-w
도움이 될 수 있음). 또는 읽기 전용 보기에 디렉터리 트리를 노출합니다.파일 시스템 바인딩(바라보다이 답변다양한 시나리오의 사용 예).