Linux에서 입력 / 출력 오류를 해석하고 수정하는 방법? rsync로 매일 백업을 실행하고 있습니다. 며칠 전부터

rsync로 매일 백업을 실행하고 있습니다. 며칠 전부터 백업 중 파일 중 하나에서이 오류가 발생했습니다.

rsync: read errors mapping "/home/folder/file.ext": Input/output error (5)
WARNING: /home/folder/file.ext failed verification -- update discarded (will try again).

최선의 행동 과정은 무엇입니까? 깨진 파일입니까? 아니면 파일 위치에 하드 드라이브에 문제가 있습니까? 그냥 삭제하고 백업 된 버전 중 하나를 파일 위치에 복사해야합니까? 아니면 내가해야 할 일이 더 있습니까?



답변

rsync 오류

 read errors mapping ....: Input/output error (5)

rsync가 파일을 읽거나 쓸 수 없음을 나타냅니다. 이 오류의 가장 큰 원인은 SRC 또는 TGT 디렉토리의 디스크 결함입니다. 그러나 다른 가능성으로는 권한 부족, 바이러스 백신 프로그램에 의한 파일 잠금 및 maybe기타 원인이 있습니다.

진단을 향한 첫 단계는 파일을 수동으로 복사하는 것입니다. 예를 들어, 오류의 원인이 TGT 디렉토리의 디스크 결함 인 경우 작동 할 수 있습니다. 나중에 작업을 반복하면 디스크의 다른 섹션에 쓰며 문제가 증발했을 수 있습니다.

또는 SRC 디렉토리의 파일에 액세스 할 수 없음을 발견 할 수 있습니다. 이 경우 배포판에 사용 가능한 디스크 검사 유틸리티를 사용하는 것이 좋습니다.

불충분 한 권한 인 안티 바이러스는 진단하기가 더 쉽습니다.

마지막으로, SRC 디렉토리에 불량 섹터가있는 경우 다음을 통해 향후 rsync 실행에서 해당 섹터를 제외 할 수 있습니다.

rsync -av --exclude='/home/my_name/directory_with_corrupt_files/*'

답변

비슷한 문제가 있었는데 USB를 통해 퓨즈 장착 장치에 자주 연결이 끊어 IO 오류가 발생했습니다. IO 오류가 rsync의 중간 단계에서 시작되어 rsync를 반복적으로 실행하더라도 특정 시점에서 동기화가 기존 파일 업데이트를 넘어서는 진행되지 않기 때문에 백업이 완료되지 않았습니다.

내 해결책은

--ignore-existing

선택권. 이 방법으로 종료 상태가 0이 될 때까지 루프에서 동기화를 실행할 수 있습니다.

물론,이 경우 기존 파일에 대한 업데이트는 신경 쓰지 않았습니다.


답변

를 사용하여 동기화 상태를 유지하는 2 개의 외장 드라이브가 rsync있습니다. 이 작업을 두 컴퓨터 중 하나에서 정기적으로 수행하고 편의상 자주 다른 컴퓨터로 전환합니다. 데비안 9를 실행하는 4 대의 컴퓨터가 있으며 각 드라이브에서이 드라이브를 사용합니다.

오늘 아침에 나는 다음을 사용했다.

rsync -ahv --delete drive-x drive-y

수백 건의 고장이보고되어 놀랐습니다.

주로 : rsync: readlink_stat... failed: Input/output error (5)
또한 :rsync: rsync: recv_generator: mkdir ... failed: Read-only file system (30)

무슨 일이 있었는지 알아내는 과정에서 드라이브를 두 번 다시 마운트하고 재부팅하고 실행 rsync하지 않고 --delete기본적으로 정상적으로 작동하는 것이 오랫동안 문제를 해결하려고 시도했습니다. rsync다시 설치하는 것에 대해서도 생각 했습니다. 그렇게하기 전에 rsync다른 컴퓨터에있는 2 개의 드라이브를 결정 했는데 오프라인 상태입니다. rsync제대로 작동했습니다.

여기에 게시 된 자료를 읽은 후 clamav서명을 설치 하고 홈 디렉토리를 스캔했습니다. 나는 이것을 다른 기계에서 정기적으로 사용합니다. PUA를 1 개만 찾았으며 삭제했습니다. 나는 항상 PUA를 삭제합니다. 그런 다음이 시스템으로 두 개의 드라이브를 다시 마운트하고 각 드라이브에 다른 테스트 파일과 폴더를 추가했습니다.

나는 달렸고 rsync -ahv --delete drive_x drive_y모든 것이 잘 작동했습니다.