개요
dump는 유닉스(Unix) 및 유닉스 계열 운영체제에서 파일 시스템(file system) 단위의 백업을 수행하는 명령어이다. 일반 파일이나 디렉터리 단위로 백업하는 tar 등과 달리, dump는 파일 시스템의 블록(block) 단위에서 직접 데이터를 읽어 백업한다. 이 명령어는 AT&T 벨 연구소(Bell Laboratories)에서 개발되었으며, Version 6 AT&T UNIX(1975년 5월 출시)에 처음 등장한 것으로 알려져 있다. 이후 리눅스(Linux)를 비롯한 대부분의 유닉스 계열 운영체제로 이식되었다.
주요 기능 및 특징
파일 시스템 수준 백업
dump는 파일 시스템의 inode 테이블을 읽어 블록 단위로 데이터를 복사한다. 이는 파일과 디렉터리 추상화 아래의 원시 데이터(raw data)에 접근하여 백업을 수행한다는 의미이다. 따라서 파일 메타데이터(metadata), 권한(permission), 특수 파일(special file) 등도 함께 보존된다.
증분 백업(Incremental Backup) 레벨
dump는 0부터 9까지의 레벨(level) 을 사용하여 증분 백업을 지원한다.
- 레벨 0(level 0): 전체 백업(full backup). 파일 시스템 전체를 백업한다.
- 레벨 1~9: 증분 백업(incremental backup). 직전 하위 레벨 백업 이후 변경된 데이터만 백업한다. 예를 들어 레벨 1은 레벨 0 이후 변경된 파일만, 레벨 2는 레벨 1 이후 변경된 파일만 백업한다.
이러한 레벨 체계는 백업 공간을 절약하면서도 체계적인 데이터 보호를 가능하게 한다.
백업 이력 추적
-u 옵션을 사용하면 백업 수행 내역이 /etc/dumpdates 파일에 자동 기록된다. 이 파일에는 파일 시스템 장치, 백업 레벨, 백업 수행 시각이 저장되며, 이후 증분 백업 시 어떤 데이터가 변경되었는지 판단하는 기준으로 사용된다.
사용법
기본 문법은 다음과 같다.
dump [옵션] [백업대상_파일시스템]
주요 옵션은 아래와 같다.
| 옵션 | 설명 |
|---|---|
-0 ~ -9 |
백업 레벨 지정 (0=전체 백업, 1~9=증분 백업) |
-f 파일 |
백업 데이터를 저장할 출력 파일 또는 장치 지정 |
-u |
/etc/dumpdates 파일에 백업 이력 기록 |
-v |
상세(verbose) 모드로 진행 상황 출력 |
-h 레벨 |
링크 수가 지정 값 이상인 파일 제외 |
-W |
/etc/fstab과 /etc/dumpdates를 참조하여 덤프 가능한 파일 시스템 목록과 마지막 백업 상태 출력 |
-L |
마운트된 읽기-쓰기 파일 시스템에 대해 라이브 덤프 수행 |
사용 예시
전체 백업 (레벨 0)
dump -0uvf /backup/full_backup.dump /dev/sda1
/dev/sda1 파일 시스템 전체를 /backup/full_backup.dump 파일로 백업하며, 작업 이력을 기록한다.
증분 백업 (레벨 1)
dump -1uvf /backup/incr_backup.dump /dev/sda1
직전 레벨 0 백업 이후 변경된 데이터만 백업한다.
테이프 장치로 백업
dump -0uf /dev/nst0 /home
/home 디렉터리의 파일 시스템 전체를 SCSI 테이프 장치(/dev/nst0)에 백업한다.
파이프를 통한 압축 백업
dump -0uvf - /dev/sda1 | gzip > /backup/backup.dump.gz
dump는 자체 압축 기능을 제공하지 않으므로, 표준 출력(-f -)을 gzip으로 파이프 연결하여 압축 백업을 수행할 수 있다. 이 방식은 SSH를 통해 네트워크 원격지로 전송하는 용도로도 자주 사용된다.
복원(restore)
dump로 생성된 백업 파일은 restore 명령어를 통해 복원한다.
- 전체 복원:
restore -rf 백업파일 - 대화형 복원:
restore -if 백업파일— 복원할 파일을 선택적으로 지정 가능 - 비교 모드:
restore -Cf 백업파일— 백업 내용과 현재 파일 시스템 비교
지원 파일 시스템
dump는 주로 ext2, ext3, ext4 파일 시스템을 대상으로 설계되었다. XFS, Btrfs, ZFS 등 현대적인 파일 시스템에 대한 지원은 제한적이거나 제공되지 않으며, 이러한 파일 시스템은 각각 xfsdump, btrfs send 등 전용 백업 도구를 사용하는 것이 일반적이다.
제약 사항
- 마운트된 읽기-쓰기 파일 시스템에서
dump를 실행할 경우 일관성 없는 데이터가捕获될 수 있다.-L옵션으로 일부 보완이 가능하지만 완전한 해결책은 아니다. - 기본적으로 루트 권한(root privilege)이 필요하다.
- 백업 파일에 대한 암호화 기능을 내장하지 않으므로 외부 도구(gpg 등)와 조합하여 사용해야 한다.
역사
dump 명령어는 1973년 11월 AT&T 벨 연구소에서 개발된 Version 6 AT&T UNIX에 최초로 포함되었다. 이후 BSD(Berkeley Software Distribution) 계열을 통해 널리 확산되었으며, 리눅스에서는 ext2 파일 시스템용 dump/restore 유틸리티가 별도로 개발되어 배포되고 있다. 현재 대부분의 리눅스 배포판에서 패키지 관리자를 통해 설치할 수 있다.
또한, dump 명령어는 ASCII 사가 1993년에 발매한 MSX-DOS2 Tools for MSX-DOS version 2의 일부로도 포함된 바 있다.
참고
백업된 데이터의 복원 가능성을 보장하려면 정기적으로 복원 테스트를 수행하는 것이 권장된다. dump로 생성된 백업은 restore 명령어를 통해서만 복원할 수 있으므로, restore 명령어가 함께 설치되어 있어야 한다.