Linux

[Linux] Backup 및 Restore 관련 명령어(3) - dd / rsync

thdwldud 2025. 11. 17. 13:54

dd (data dumper)

  • 파티션이나 디스크 단위로 백업할 때 사용하는 유틸리티로 사용하기는 쉬우나 많은 시간이 소요됨

사용 예

  • 블록 사이즈 1KB 단위로 하여 /dev/sda1을 /dev/sdb1으로 백업
dd if=/dev/sda1 of=/dev/sdb1 bs=1k
  • 블록 사이즈 1MB 단위로 하여 /dev/sda을 /dev/sdb으로 백업
dd if=/dev/sda of=/dev/sdb bs=1M

 

dd 관련 자세한 포스팅https://thdwldud.tistory.com/54

 

rsync (remote synchronous)

  • 네트워크로 연결된 원격지의 파일들을 동기화하는 유틸리티
  • 예전에 사용하던 rcp(remote copy)에 비해 처리속도도 빠르고 다음과 같은 기능을 제공
    • 링크된 파일이나 디바이스 파일도 복사 가능하고, 그룹을 포함한 소유권 및 허가권도 유지하여 복사 가능
    • GNU tar와 유사한 옵션을 사용하며, 특정한 부분만 백업 가능
    • CVS의 exclude 모드처럼 같은 파일들을 제외 가능
    • ssh나 rsh을 이용하여 전송 가능하고 root 권한이 필요하지 않음
    • 내부 파이프라인을 통하여 전송 시간을 줄임
    • 익명(anonymous) 사용자 및 인증된 사용자를 지원하여 미러링(mirroring)에 이상적임
    • 로컬 시스템의 백업 시에는 별다른 서버 설정 없이 사용 가능
rsync [option] source destination

옵션

옵션 설명
-r
--recursive
하위 디렉터리까지 실행
-l
--links
심볼릭 링크를 그대로 보존
-L
--copy-links
심볼릭 링크가 참고하고 있는 파일을 복사
-p
--perms
퍼미션을 그대로 보존
-t
--times
타임스탬프를 그대로 보존
-g
--group
그룹 소유권을 그대로 보존
-o
--owner
소유권을 그대로 보존(root만 가능)
-D 디바이스 파일을 그대로 보존(root만 가능)
-H
--hard-links
하드 링크를 그대로 보존
-a
--archive
-rlptgoD를 한 번에 실행할 때 사용
-v
--verbose
진행 상황을 자세히 출력
-u
--update
업데이트된 내용만 전송
-z
--compress
전송할 때 압축
-b
--backup
백업할 때 동일한 파일이 존재하는 경우에 ~를 붙여서 백업파일을 생성
-e
--rsh=COMMAND
원격지에서 사용할 셸 명령을 기재
--progress 명령이 실행되는 동안의 전송 상황 정보를 출력
--delete 송신측에서 없은 파일이 수신측의 백업 디렉터리에 존재하면 삭제

사용 예

  • /home을 그대로 보존하면서 /home5로 백업
rsync -av /home /home5
  • 원격지인 192.168.0.2의 /home을 압축해서 로컬 시스템의 /(root) 디렉터리로 복사. 원격지인 192.168.0.2에서 rsync 데몬을 사용하지 않는 경우에는 기본적으로 ssh을 이용
rsync -avz 192.168.0.2:/home /

 

  • 원격지인 192.168.0.2에 ssh를 이용하여 root 권한으로 접속해서 백업
rsync -avz -e ssh root@192.168.0.2:/home ~/backup
  • 로컬 디렉터리인 /home을 원격지인 192.168.5.13의 /backup 디렉터리에 복사하는데, 진행 상황을 출력. 아울러 수신측에 /backup 디렉터리 안에 존재하는 /home과 비교해서 송신측에서 보내온 내용에 해당하지 않는 파일들을 삭제
rsync -av --delete /home 192.168.5.13:/backup