tar -czvf backup.tar.gz /home/user # 디렉터리를 압축 아카이브로(가장 보편적)tar -xzvf backup.tar.gz # 복원(풀기)rsync -av /src/ /backup/ # 증분 동기화(바뀐 부분만)rsync -avz /src/ user@host:/backup/ # 원격으로 압축 전송(z)dd if=/dev/sda of=/backup/disk.img # 디스크를 블록 단위 통째로 복제dump -0u -f /backup/full.dump /dev/sda1 # 파일시스템 레벨 0(전체) 백업restore -rf /backup/full.dump # dump 백업 복원find /home | cpio -ov > backup.cpio # find와 결합한 아카이브
도구
층위
특징
용도
tar
파일/디렉터리
묶기+압축, 가장 보편
일반 백업·배포
rsync
파일/디렉터리
증분(바뀐 것만), 원격
주기적 동기화
dd
블록(장치)
디스크 통째 복제, 비트 단위
디스크 이미지·복제
dump/restore
파일시스템
레벨 0~9 증분, ext 계열
파일시스템 전체 백업
cpio
파일(stdin)
find와 결합
선택적 아카이브
💡 개념: 백업 도구는 작동 층위로 이해해야 한다. tar/rsync/cpio는 파일 단위로 동작해 파일·디렉터리를 골라 백업한다. dump/restore는 파일 시스템 단위로 동작하며 레벨(0=전체, 1~9=증분)을 지원한다. dd는 가장 낮은 블록(장치) 단위로, 빈 공간까지 포함해 디스크를 비트 그대로 복제한다 — 그래서 디스크 통째 이미지나 부팅 디스크 복제에 쓴다. 층위가 다르면 용도가 다르다.
rsync의 강점은 증분 전송이다. 처음엔 전체를 복사하지만, 다음부터는 바뀐 파일·바뀐 블록만 전송해 시간과 대역폭을 크게 아낀다. -a(archive, 권한·시각·링크 보존), -v(상세), -z(전송 시 압축), --delete(원본에 없는 파일을 백업에서도 삭제)가 핵심 옵션이다. 원격 백업의 사실상 표준이다. 경로 끝의 슬래시(/src/)는 "디렉터리 안의 내용"을 의미해 결과가 달라지니 주의한다.
⚠️ 함정: dd는 강력한 만큼 위험하다. if(input file)와 of(output file)를 바꿔 쓰면 백업하려던 디스크를 빈 이미지로 덮어써 데이터를 통째로 날린다 — 그래서 "data destroyer"라는 별명이 있다. 또 dump는 ext2/3/4에 특화돼 xfs 등에는 쓸 수 없다(xfs는 xfsdump). 도구마다 지원 파일 시스템이 다르다.
# 직접 쳐보기 — 백업 연습 (안전한 디렉터리에서)mkdir -p /tmp/src /tmp/dstecho "hello" > /tmp/src/a.txttar -czvf /tmp/backup.tar.gz /tmp/src # tar 백업tar -tzvf /tmp/backup.tar.gz # 내용 확인(풀지 않고)rsync -av /tmp/src/ /tmp/dst/ # rsync 동기화echo "world" >> /tmp/src/a.txtrsync -av /tmp/src/ /tmp/dst/ # 두 번째: 바뀐 것만 전송
세 줄 모두 "저수준은 파일/대상 하나를 직접 다루고 의존성을 자동 해결하지 못하며, 고수준은 저장소/의존성 지도를 참고해 자동 처리한다"는 같은 원리다. rpm -ivh가 의존성 오류로 멈추는 것, dpkg -i가 "설정 안 됨" 상태로 남는 것, insmod가 "Unknown symbol"로 실패하는 것 — 모두 같은 이유(의존성 수동)다. 그래서 실무·시험의 정답은 대개 고수준 도구다.
둘 다 make로 빌드하지만 설정 방식이 다르다. 일반 소스는 ./configure가 시스템을 정찰해 Makefile을 만들고, 커널은 make menuconfig로 기능을 직접 선택(*/M/제외)해 .config를 만든다. 커널은 설치도 두 갈래 — 모듈은 make modules_install(→/lib/modules), 커널 이미지는 make install(→/boot + GRUB). 라이브러리는 동적(.so, ldd/ldconfig로 관리)과 정적(.a)으로 나뉜다.
Day 4의 "블록 장치(b) vs 문자 장치(c)"가 백업과 직결된다. dd가 디스크를 통째 복제할 수 있는 것은 디스크가 블록 장치라 블록 단위로 임의 접근이 되기 때문이다. 문자 장치(터미널·키보드)는 흐름이라 이미지로 복제할 수 없다. 그래서 dd if=/dev/sda(블록 장치)는 되지만 dd if=/dev/tty0(문자 장치)는 디스크 이미지 백업의 의미가 없다. 장치 종류 → 백업 가능 방식이 한 줄로 이어진다.
백업 도구들의 나이대가 곧 설계 철학을 보여준다. dump/restore와 dd는 1970년대 유닉스부터 있던 고전으로, 파일 시스템·장치를 직접 다룬다. tar(tape archive)는 본래 자기 테이프에 백업하려고 만든 도구라 이름에 "tape"가 남았다. cpio도 같은 시대 테이프 도구다. rsync는 1996년 등장한 비교적 신참으로, 네트워크 시대에 맞춰 "바뀐 부분만 전송"을 핵심으로 삼았다. 오래된 도구일수록 낮은 층위(블록·파일시스템·테이프)를, 새 도구일수록 효율적 네트워크 동기화를 지향한다.