파일에 액세스할 수 없게 되면 rsync가 현재 파일을 덮어쓰게 됩니까?

파일에 액세스할 수 없게 되면 rsync가 현재 파일을 덮어쓰게 됩니까?

일부 데이터 디렉터리에 액세스할 수 없게 되면 rsync가 현재 소유한 파일을 덮어쓰게 됩니까?

rsync -amHAXxzvR --update --numeric-ids --progress  --include='*/' --include=*.sas7bdat --exclude='*.old/' --exclude=* -e [email protected]:/XXX/ /mnt/z/XXX/.

데이터에 대한 나의 접근은 기관의 데이터베이스 접근에 따라 매년 바뀔 수 있습니다. 예를 들어 일부 파일의 경우 액세스 권한이 없으면 다음 오류가 발생합니다. 'XXXX'를 열 수 없습니다: 권한이 거부되었습니다(13).

그렇다면 위 명령을 실행하면 rsync가 다운로드했지만 액세스할 수 없는 현재 파일을 덮어쓰고 삭제합니까?

그렇다면 어떻게 피할 수 있습니까? 감사해요.

답변1

하나를 지정하지 않았 --delete으므로 대상에서 파일이 삭제되지 않습니다. 권한을 직접 쉽게 테스트할 수 있습니다.

상상하다

mkdir -p 739797/src 739797/dst
cd 739797

echo first try | tee src/file1 >src/file2         # Create two files
rsync -av src/ dst/                               # Copy everything

이제 다음을 사용하여 동일한 콘텐츠가 포함되어 있음을 ls -l확인할 수 있습니다.dst/src/

echo second attempt | tee src/file1 >src/file2    # Update the two files
chmod u= src/file2                                # Remove permission from file2
rsync -av src/ dst/                               # Attempt to copy everything

rsync허가 거부 실패가 표시됩니다 file2. 그것을 사용하면 업데이트되었지만 아직은 업데이트되지 않은 것을 ls -l dst볼 수 있습니다 . 또한 아직 (제대로) 업데이트되지 않았습니다.file1file2file

-rw-r--r-- 1 roaima roaima 15 Mar 15 13:09 file1
-rw-r--r-- 1 roaima roaima 10 Mar 15 13:04 file2

추가 지침

  1. 데이터베이스나 기타 파일을 백업하는 경우 rsync복사하는 동안 소스 파일을 잠그지 않으며 복사가 즉시 이루어지지 않는다는 점을 기억하십시오. 복사하는 동안 소스 파일이 rsync변경되면 대상 파일이 감지되지 않은 손상으로 끝날 수 있습니다. 백업 스냅샷 또는 유휴 복사본
  2. 쉘이 파일 시스템의 파일 및 디렉토리와 일치시키려고 시도하지 않도록 --include항상 와일드카드 패턴을 인용하십시오 . 글을 쓰는 --exclude대신--exclude=*--exclude='*'

관련 정보