RSYNC 변경 파일이 종료되고 실패함

RSYNC 변경 파일이 종료되고 실패함

일부 보관 작업을 수행하기 위해 Python에서 rsync를 수행하는 Jenkins 시스템에 이상하고 거의 발생하지 않는 버그가 있습니다.

오류는 다음과 같습니다

rsync: rename "/OLD_PATH/internal/.my_config.json.MfXl7i" -> "internal/my_config.json": Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1207) [sender=3.1.3]

잘못된 명령은 다음과 같습니다:

rsync -az --no-p --no-g --chmod=ugo=rwX NEW_PATH/ OLD_PATH
returned non-zero exit status 23

rsync 호출 전에 나머지 Python 스크립트로 작성된 파일은 "my_config.json"입니다. 파일 이름 앞의 점과 끝에 있는 "MfXl7i"는 어디에서 왔습니까? rsync가 분명히 파일 종료를 변경하는 이유는 무엇입니까?

미리 감사드립니다.

답변1

관련 오류 메시지는 첫 번째 줄에 있습니다.

rsync: rename "internal/.my_config.json.MfXl7i" -> "internal/my_config.json": Permission denied (13)

이는 rsync명령이 데이터를 동기화할 수 있지만 새 파일을 쓸 수는 없음을 의미합니다.

이 파일에 대한 쓰기 권한이 있습니까 internal/my_config.json? 파일이 존재하고 쓰기 금지되어 있거나 귀하의 것이 아닐 수도 있습니다.

파일과 그 안에 포함된 폴더를 보면 알 수 있습니다.

# ls -ld internal internal/my_config.json

예를 들어 폴더를 소유하고 폴더에 대한 읽기+쓰기+실행 권한을 가지고 지정된 파일을 폴더에 쓸 수 있어야 하며, 파일이 존재하는 경우 변경할 수 없는 속성을 가지거나 읽기 전용일 수 없습니다(필요함). 쓰기 권한). 또한 폴더는 읽기 전용이 아닌 마운트 디스크/파티션에 있어야 합니다.

관련 정보