rsync에 관한 두 가지 질문 - Xfer 및 로깅 도중 실패

rsync에 관한 두 가지 질문 - Xfer 및 로깅 도중 실패

저는 rsync를 사용하여 로컬 서버에서 원격 로깅 서버로 데이터를 이동하는 로그 백업 솔루션을 구현하기 위해 노력하고 있습니다. 우리에게는 두 가지 우려 사항이 있습니다. 첫 번째는 현재 수행해야 할 로깅을 구현하지 않았다는 것입니다. rsync에 대한 매뉴얼 페이지는 방대하며 rsync 서버를 사용하지 않고 단지 oncall rsync를 사용하여 클라이언트(클라이언트 시작)에서 스토리지 서버로 데이터를 푸시합니다.

누구의 머릿속에도 전송 중 실패에 대한 로깅 옵션이 있습니까?

또한 구현 방식의 특성으로 인해 쉘 스크립트는 먼저 로컬 백업 서버에 ping을 시도합니다. ping이 성공하면 파일이 업로드됩니다. 그러나 핑이 실패하면 대신 지역 중복 백업 서버에 업로드됩니다. rsync 도중에 메인 서버가 다운되면 구멍이 남습니다. 전송 도중 실패할 경우 백업 대상을 지정할 수 있는 방법이 있나요?

답변1

나는 rsync에 내장 장애 조치 옵션이나 특수 오류 로깅(stderr에 인쇄되는 것 제외)이 없다고 생각합니다. --log-file=및 옵션이 있지만 --log-file-format=연결 실패가 아닌 업데이트된 파일을 기록하는 데 중점을 둡니다. 제가 추천하는 것은 클라이언트 측에서 rsync의 종료 상태를 확인하고, 연결 문제를 나타내는 오류 번호인지 확인하는 것입니다(10, 12, 30이 관련된 것으로 보이지만 테스트를 통해 더 나은 아이디어) 연결 가능한 다른 서버를 검색하고 다시 시도하세요. 또한 rsync의 stderr 출력을 캡처하고 이를 직접 기록하거나 인식된 오류를 스캔하여 로그에 요약할 수도 있습니다.

서버 측에서도 로깅을 원할 경우 rsync를 정상적으로 실행( rsync "$@"인수 통과)하는 래퍼 스크립트를 작성한 다음 종료 상태를 확인하고 이를 기록합니다. 스크립트가 (stdout 또는 stderr로) 자체적으로 출력하지 않는지 확인하십시오. 그렇지 않으면 원격 rsync 클라이언트를 혼동시킬 수 있습니다.

관련 정보