rsync 명령 삭제 오류“IO 오류가 발생했습니다 – 파일 삭제 건너 뛰기”


16

rsync 명령을 사용하여 파일을 내 우분투 서버 중 하나에서 다른 우분투 컴퓨터로 백업합니다. 백업 서버는 rysnc 명령을 사용하는 스크립트를 트리거합니다. 여기 내가 사용하는 명령이 있습니다

rsync -rltvh --partial --stats --exclude = .beagle / --exclude =. * --delete-after root @ live_server : / home / / home / live_server_backup / home >> /tmp/logfile.log 2> &1

live_server는 비밀번호없이 ssh 가능합니다. 그래서 작동합니다. 이제 문제는

-삭제 후 옵션

모든 파일이 동기화 된 후. 결국 삭제 절차를 건너 뛸 수 있습니다 .logfile 오류는

IO 오류 발생-파일 삭제 건너 뛰기

로그를 찾으려고 할 때 파일 동기화 중에 오류가 발생했습니다

rsync : send_files가 "/home/xyz/Desktop/PPT_session_1_context.pdf"를 열지 못했습니다 : 권한이 거부되었습니다 (13)

그래서 내 이해는 rsync가 파일 삭제를 건너 뛰는 안전상의 이유로 대상에서 모든 파일을 읽을 수 없다는 것입니다.

권한 오류가 있어도 --delete-after work하는 방법이 있습니까? 일부 상황에서는 위험하므로 강제 삭제를 사용하고 싶지 않습니다.


1
다시 Pssst ... 당신은 정말해야합니다.
Armel Larcier

답변:


13

이 문제에 대한 추가 참고 사항 :

vanished file조건을 트리거해서는 안되지만 IO error encountered -- skipping file deletion라이브 시스템의 백업을 생성 할 때 종종 발생합니다.

이것은 rsync 버그 # 7809 ( https://bugzilla.samba.org/show_bug.cgi?id=7809 )에 의해 다루어지며 다음 릴리스 3.1.0에서 해결 될 것입니다.

그 동안 사용 :

--ignore-errors         delete even if there are I/O errors

19

rsync 매뉴얼 페이지에서 :

--ignore-errors         delete even if there are I/O errors

그것은 당신의 문제를 다룰 것입니다.


2

rsync읽을 수없는 파일을 무시하려면 제외 파일을 사용해야합니다 . find . -exec test -r '{}'소스 디렉토리에서 목록을 생성 한 다음 rsync원하는 제외 파일 형식으로 정리할 수 있습니다.


실제로 내 소스 디렉토리는 상당히 큽니다 (10-12GB). 따라서 파일을 찾을 때마다 (읽기 권한이 없음) 효율적인 방법은 아닙니다. 당신은 무엇을 말합니까?
XemX

제외 목록을 작성하려면 한 번만 실행하고 읽을 수없는 새 파일을 모두 추가하지 않으면 다시 실행하지 마십시오. rsync는 동일한 트리 탐색을 수행하므로 어쨌든 그렇게 나쁘지 않아야합니다.
Kyle Jones

예. 그러나 그것은 내 시나리오와 같습니다. 매일 소스 디렉토리에 이러한 파일이 도입 될 수 있습니다. 새 파일을 백업 시스템에 백업해야합니다.
XemX

이에 대한 해결책이 있습니까? 또한 라이브 시스템의 백업에 rsync를 사용하며 읽기 시스템에 I / O 오류가 발생하면 대상 시스템에서 파일이 삭제되므로 발생하지 않아야합니다!
bzero
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.