7zip에서는 증분(Incremental) 백업과 차등(differential) 백업이 있다.
한국어가 어려워서 그렇지 원리는 간단한다.

증분은 현재 백업 내용에서 변경된 내용을 업데이트하는데, 백업본 원본에 적용을 하는 것이다.

차등은 현재 백업 내용을 기준으로 차이가 나는 부분을 다른 압축파일에 적용을 하는 것이다.

상황에 따라, 조건에 따라 적용하는 규칙은 선택한다.
(위의 내용은 뿌비의 블로그 - 7zip 을 이용한 차등백업 (Differential Backup) 사이트를 참조하도록 한다.매우 잘 정리된 글이다.)

여기서는 차등 백업에 대해서 알아본다.

다만 필자는 Windows 기반으로 작성해본다. Linux는 실행 명령이 다를 뿐 옵션은 동일한다.

여기서 사용한 7zip은 64bit용 16.04 (2016-10-24) 버전을 사용한다.


차등 백업 방법.

1. 차등을 하기 위한 기준 압축을 만들어야 한다. 전체 압축을 수행하면 된다.

"C:\Program Files\7-Zip\7z.exe" a -t7z backup.7z {BackupTargetFolder}
  • a 명령은 압축을 수행하겠다는 의미.
  • -t7z 은 압축 타입을 7zip 포맷으로 하겠다는 의미.
  • backup.7z 은 백업 결과물을 backup.7z으로 하겠다는 의미 ""를 써서 전혀 다른 경로에 백업을 수행할 수도 있다. (예 : "C:\backup\2017\backup.7z"
  • {BackupTargetFolder} 백업 대상 경로. 일반적인 경로를 입력한다. "C:\SomeFolder\MyBackup\KK1 Options" 라고 쓸수도 있고, ".\Target" 이런식으로도 쓸 수 있다.


2. 기준 압축이 만들어졌으면 차등 백업을 만든다.

"C:\Program Files\7-Zip\7z.exe" u backup.7z  c:\backup\backup.7z  -ms=off -t7z -u- -up0q3r2x2y2z0w2!c:\backup\diff_%date%.7z

u 명령은 차이점 구성을 수행하겠다는 의미

backup.7z 은 기준 백업 파일로써, 기준 백업 파일의 정확한 경로를 넣어준다.

-ms=off 7zip에서는 Solid 압축을 지원하는데, 이 기능을 쓰면 차등백업이 정상적으로 동작하지 않는다고 한다.그래서 Off로 처리한다. (https://www.dotnetperls.com/7-zip-examples 에서 Solid archives 의 내용을 참고한다.)

-t7z  7zip 파일포맷을 사용한다는 의미. zip으로되 되기는 하지만, 압축적 효율성이나, 오류 대응이 7zip 포멧이 우월한다. 특별한 경우가 아니면 7zip 포멧을 강력히 권장한다.

-u- 업데이트(차등백업) 옵션을 초기화 한다. (뒤에서 설정하는데 왜 이렇게 하는지는 잘 모르겠다.

-up0q3r2x2y2z0w2!diff_%date%.7z  제일 복잡한 옵션인데, -u 까지는 업데이트(차등백업) 옵션이라는 의미고 p0q3r2x2y2z0w2 는 각각 업데이트 결과물에 대한 옵션이다. 여기서 설명하기는 너무 양이 많아(?) 아주 잘 설명되어 있는 사이트를 제공한다. http://a32.me/2010/08/7zip-differential-backup-linux-windows/ 마지막으로 !diff_%date%.7z 부분은 차등백업된 결과물이 저장되는 위치 및 파일명을 의미한다. ! 로 구분하고, 그 뒤에 파일명이 오면 된다.


전체 압축한 파일과 차등백업 파일들을 한 셋트로 잘 보관 해주면 된다.

(전체 압축한 파일이 변경되면 차등백업 파일들도 모조리 복원이 불가능하니, 반드시 원본 유지는 잘해야 한다.)


차등 복원 방법

복원의 순서는 원본을 적당한 위치에 복원을 하고, 그 뒤에 차이점을 저장한 백업을 해제하면 된다.
차이점 부분은 원하는 시점의 차이점으로 부으면 된다.

"C:\Program Files\7-Zip\7z.exe" x c:\backup.7z -oc:\recovery_path\
"C:\Program Files\7-Zip\7z.exe" x c:\archive.7z -aoa -y -oc:\recovery_path\

다른 옵션은 차치하고 -aoa와 -y가 있는데, -aoa는 겹치는 파일이 있더라도 무조건 덮어쓰겠다는 의미다. 보통 차이점이다 보니, 파일의 사이즈가 변경된 부분이 있는 경우 원본과 파일경로와 이름이 동일한 경우가 있다. 그러므로 기준 백업에서 생성된 파일도 덮어쓰겠다는 의미다. -y는 여러가지 압축 해제 중 7zip에서 질문을 던지는 경우 무조건 y로 처리하겠다는 의미다.


활용방안

위의 내용 중 차등 백업하는 부분을 배치로 만들어 Task Scheduler(작업스케줄러)에 등록해서 매일 백업하도록 했다. 최소한 매일 전체 백업하는 것 보다 Disk 용량 압박이 많이 줄었다.





728x90

+ Recent posts