본문 바로가기

IT

Rsync 고급 활용법 – 증분 백업과 --dry-run 테스트

1. 증분 백업이란?

증분 백업은 변경된 파일만 추가로 복사하는 방식이다. 처음에는 전체 데이터를 복사하지만, 이후에는 수정되거나 새로 생성된 파일만 동기화하기 때문에 속도와 저장 공간을 크게 절약할 수 있다.

예를 들어 수십만 개의 파일이 있는 디렉토리를 매일 백업해야 한다면, 매번 전체 복사를 하면 시간이 오래 걸리고 스토리지 낭비도 발생한다. 하지만 증분 백업을 활용하면 효율적으로 최신 상태를 유지할 수 있다.

2. Rsync로 증분 백업 구현하기

증분 백업을 위해서는 보통 -a 옵션과 함께 --link-dest 또는 --backup 옵션을 활용한다.

(1) 단순 증분 복사

 
rsync -av /data/ /backup/2025-08-31/
  • /data/ 디렉토리의 전체 데이터를 /backup/2025-08-31/로 복사한다.
  • 다음날 같은 명령을 실행하면, 이미 동일한 파일은 건너뛰고 변경된 파일만 복사한다.

(2) 하드링크를 이용한 증분 백업

 
rsync -av --link-dest=/backup/2025-08-30/ /data/ /backup/2025-08-31/
  • 전날 백업본을 기준으로 달라진 파일만 새로 복사하고, 변경 없는 파일은 하드링크로 연결한다.
  • 마치 매일 전체 백업을 보관하는 것처럼 보이지만 실제로는 중복을 제거해 저장 공간을 아낄 수 있다.

(3) --backup 옵션으로 변경 이력 보관

 
rsync -av --backup --backup-dir=/backup/old/2025-08-31/ /data/ /backup/current/
  • 새로운 백업 시 변경되거나 삭제된 파일을 /backup/old/ 경로에 따로 보관한다.
  • 데이터 이력을 관리하거나 특정 시점으로 롤백해야 할 때 유용하다.

3. --dry-run으로 안전하게 테스트하기

Rsync를 사용할 때 가장 두려운 옵션이 바로 --delete다. 잘못 설정하면 대상 디렉토리의 데이터가 몽땅 삭제될 수 있기 때문이다. 이런 실수를 방지하기 위해 --dry-run 옵션을 꼭 활용해야 한다.

 
rsync -av --delete --dry-run /data/ /backup/
  • 실제로는 아무런 복사나 삭제를 하지 않고, 어떤 작업이 수행될지를 출력해 준다.
  • 옵션 조합이 맞는지, 삭제될 파일은 없는지 미리 확인할 수 있다.
  • -n은 --dry-run의 축약형이다. (-avn 같이 자주 쓰임)

4. 증분 백업 + --dry-run 조합 활용

실무에서는 주로 이렇게 두 단계를 거친다.

  1. 사전 검증→ 실행 전 어떤 파일이 복사·삭제될지 확인
  2.  
    rsync -av --delete --dry-run /data/ /backup/2025-08-31/
  3. 실제 백업 실행
  4.  
    rsync -av --delete /data/ /backup/2025-08-31/

이 과정을 습관화하면 데이터 손실 위험을 크게 줄일 수 있다.

5. 자동화와 로그 관리

증분 백업은 주로 크론(cron) 작업과 결합해 매일 실행되도록 만든다. 또한 로그 파일을 남겨 관리하면 문제가 발생했을 때 빠르게 원인을 파악할 수 있다.

 
0 2 * * * rsync -av --delete /data/ /backup/`date +\%Y-\%m-\%d`/ >> /var/log/rsync_backup.log 2>&1
  • 매일 새벽 2시에 증분 백업 실행
  • 날짜별 폴더에 백업
  • 로그 파일 기록

Rsync의 진짜 가치는 단순 복사가 아니라, 효율적인 증분 백업과 안전한 검증 기능에 있다. --link-dest를 활용하면 공간을 아끼면서 여러 시점의 백업본을 유지할 수 있고, --dry-run은 예상치 못한 데이터 손실을 막아주는 필수 안전장치다. 현업에서 대규모 데이터를 다루는 엔지니어나 시스템 관리자는 반드시 익혀두어야 할 기능이라 할 수 있다.