일부 데이터 디렉터리에 액세스할 수 없게 되면 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
볼 수 있습니다 . 또한 아직 (제대로) 업데이트되지 않았습니다.file1
file2
file
-rw-r--r-- 1 roaima roaima 15 Mar 15 13:09 file1
-rw-r--r-- 1 roaima roaima 10 Mar 15 13:04 file2
추가 지침
- 데이터베이스나 기타 파일을 백업하는 경우
rsync
복사하는 동안 소스 파일을 잠그지 않으며 복사가 즉시 이루어지지 않는다는 점을 기억하십시오. 복사하는 동안 소스 파일이rsync
변경되면 대상 파일이 감지되지 않은 손상으로 끝날 수 있습니다. 백업 스냅샷 또는 유휴 복사본 - 쉘이 파일 시스템의 파일 및 디렉토리와 일치시키려고 시도하지 않도록
--include
항상 와일드카드 패턴을 인용하십시오 . 글을 쓰는--exclude
대신--exclude=*
--exclude='*'