본문 바로가기

IT

Rsync 로그 분석과 에러 처리 방법

Rsync는 파일 동기화와 백업에서 널리 사용되는 강력한 도구이지만, 실제 운영 환경에서 에러가 발생하지 않는 경우는 드뭅니다. 대규모 데이터 전송이나 장시간 동기화 작업을 진행하다 보면, 네트워크 문제나 파일 권한 문제, 심지어 디스크 용량 부족 등 다양한 원인으로 오류가 발생할 수 있습니다. 따라서 안정적인 백업 및 동기화를 위해서는 로그 분석과 에러 처리 방법을 반드시 숙지해야 합니다.

Rsync 로그 파일 확인하기

Rsync는 기본적으로 표준 출력으로 로그를 보여주지만, --log-file 옵션을 사용하면 별도의 파일로 기록할 수 있습니다.

 
rsync -avz /source /dest --log-file=/var/log/rsync.log

이렇게 실행하면 /var/log/rsync.log에 상세한 동기화 기록이 남습니다. 로그에는 전송된 파일, 제외된 파일, 발생한 오류 등이 시간 순서대로 기록됩니다. 운영 환경에서는 반드시 로그 파일 저장을 권장합니다.

로그에서 자주 확인하는 항목

  1. 전송 상태: 어떤 파일이 새로 복사되었는지, 덮어쓰기 되었는지 확인 가능
  2. 에러 코드: 실패 원인을 알려주는 핵심 정보
  3. 속도와 전송량: 병목 현상이나 네트워크 문제 진단 가능
  4. 권한 문제: 소유자(owner), 그룹(group), 퍼미션이 맞지 않아 발생하는 오류 기록

Rsync 에러 코드 이해하기

Rsync는 오류 발생 시 숫자 코드로 결과를 알려줍니다. 대표적인 코드들은 다음과 같습니다.

  • 0: 정상 종료
  • 1: Syntax 또는 사용법 오류
  • 12: 디스크 I/O 에러 (디스크 공간 부족, 읽기/쓰기 불가)
  • 23: 일부 파일 전송 실패 (권한 거부, 파일 없음 등)
  • 30: 네트워크 연결 끊김
  • 35: 타임아웃

특히 23번 오류는 가장 흔히 발생하는 에러로, “Permission denied”나 “No such file or directory” 메시지가 함께 출력됩니다.

자주 발생하는 에러와 해결 방법

  1. Permission denied (권한 거부)
    → 소유자/그룹이 맞는지 확인하고, --super 또는 --fake-super 옵션을 활용할 수 있습니다. 필요 시 chown, chmod 명령어로 권한 수정이 필요합니다.
  2. No such file or directory
    → 경로에 오타가 없는지 확인하고, 심볼릭 링크가 깨져 있지 않은지 점검합니다.
  3. Disk full (디스크 공간 부족)
    → df -h로 디스크 사용량을 확인하고, 여유 공간 확보 후 재실행합니다.
  4. Connection timed out / Connection reset
    → 네트워크 불안정 시 발생합니다. --timeout 옵션으로 타임아웃 시간을 늘리거나, 네트워크 장비 상태를 점검해야 합니다.
  5. File vanished
    → 동기화 도중 원본 파일이 삭제되거나 이동된 경우입니다. 이는 치명적인 에러는 아니지만, 중요한 파일이 사라졌다면 원인 분석이 필요합니다.

에러 처리 전략

  • 로그 자동 모니터링: tail -f /var/log/rsync.log로 실시간 확인 가능
  • 자동화 스크립트: 에러 코드별로 후속 동작을 정의하여 재실행이나 알림 전송 가능
  • 정기 점검: 크론(cron)과 함께 사용해 정기적으로 백업 검증 실행
  • 해시 검증: MD5, SHA256 해시값을 비교하여 파일 무결성을 보장

결론

Rsync는 단순한 파일 복사 툴을 넘어 안정적인 데이터 백업과 동기화를 보장하는 핵심 도구입니다. 그러나 올바르게 활용하기 위해서는 로그 분석과 에러 코드 해석 능력이 반드시 필요합니다. 집이나 기업 환경에서든, 예상치 못한 오류가 발생했을 때 신속하게 로그를 확인하고 적절히 대응할 수 있어야 진정한 의미의 안정적인 백업이 완성됩니다.