백업을 하기 전에 고려해야할 사항
- 백업 대상
- 전체 백업 / 부분 백업 (증분 백업 / 차등 백업)
- 백업 주기
- 백업 매체
- 백업 방법
※ 전체 백업
: 디스크나 파티션 전체를 백업
※ 증분 백업
: 추가된 내용만 백업
※ 차등 백업
: 바뀐 부분만 백업
시스템 백업 관련 명령어
- tar
- cpio
- dump
- restore
- dd
- rsync
tar
: 파일과 디렉터리들을 하나로 묶음으로써 간단하게 백업 가능
- 전체 백업 예시
: tar -cvfp backup_file.tar /dev/sda
- 전체 복원 예시
: tar xvf backup_file.tar
- 증분 백업 예시
: tar -g backup_list -cvfp test.tar /home
> -g 옵션으로 backup_list 파일을 기반으로 증분 백업
- 차등 백업 예시
: tar -c -v -N '13 Oct 2022' -f test.tar /home
> 22년 10월 13일 이후로 변경된 파일만 백업
- 분할 및 압축 백업 예시
: tar -zcvf - /home | split -b 128m - home.tar.gz
> /home 디렉터리를 압축하여 128mb 단위로 백업
cpio
: tar 보다 빠른 파일 및 디렉터리 복사 도구
- 형식
: [command | ] cpio <option> > <file name>
: cpio <option> > <file name>
- 주요 옵션
: -o (--create)
> 표준 출력으로 데이터를 보냄
: -i (--extract)
> 표준 입력으로 데이터 입력. 복원 시 사용
: -v (--verbose)
> 상세 출력
: -c
> 아카이브 포맷 형식을 newc로 설정
: -d (--make-directories)
> 필요한 경우 디렉터리 생성
: -t (--list)
> 백업 및 복원할 내용만 확인
: -F (--file=<file name>)
> 표준 입출력 기호 (|, >, <) 대신에 파일명 지정
: -B
> 입출력 블록 사이즈 조정. 기본값 512byte
: -H <format> (--format <format>)
> 아카이브 포맷 형식 지정. bin, newc, crc 등
- 예시
```
find /home/testUser | cpio -ocv > test.cpio
: 디렉터리를 test.cpio로 백업
cpio -icdv < test.cpio
: 현재 디렉터리에 test.cpio의 데이터 복원
ls *.conf | cpio -ocv > conf_backup.cpio
: 현재 디렉터리 내 .conf 파일들을 백업
cpio -icvt '2*.conf' < conf_backup.cpio
: conf_backup.cpio 파일의 내용 중 2로 시작하는 .conf 파일들의 목록 출력
cpio -iF config.cpio
: config.cpio 파일 내용 복원
```
dump
: 파티션 단위로 백업
: 전체 백업과 증분 백업 지원
> 0~9 단계 레벨로 증분 백업 (0이 전체 백업, 나머지는 부분 백업)
: ext2, ext3, ext4만 지원
- 형식
: dump <option> <file name> <backup target>
- 주요 옵션
: -0~9
> 백업 레벨
: -f
> 백업할 대상
: -u
> /etc/dumpdatabases 백업 관련 정보 기록.
- 예시
```
dump -0u -f backup.dump /dev/sda
: /dev/sda 퍼티션을 전체 백업하고 관련 정보 기록
```
restore
: dump로 백업한 내용을 복원
: 파일 기반으로 백업한 경우 복원할 파티션 영역에 해당 파일을 복사하여 실행
- 형식
: restore <option> <backup file>
- 주요 옵션
: -i
> 터미널에서 대화식으로 복원 진행
: -f
> 복원할 대상
: -r
> 전체 복원. 마운트된 파일 시스템에만 가능
dd
: 파티션이나 디스크 단위로 백업
: 시간이 많이 소요되는 단점 존재
- 형식
: dd if=<input file> [input option] of=<output file> [output option]
rsync
: 네트워크로 연결된 원격지의 파일을 동기화
: 링크된 파일이나 디바이스 파일 복사 가능. 그룹을 포함한 소유권 및 허가권까지 유지하여 복사
: tar과 유사한 옵션 사용. 특정 부분만 백업 가능
: ssh나 rsh를 이용한 전송 가능하며 root 권한이 불필요
: 내부 파이프라인을 통해 전송시간 단축
: 익명 사용자 및 인증된 사용자 지원. 미러링 구성 시 가장 좋은 도구
: 로컬 시스템 백업 시 별다른 서버 설정 불필요
- 형식
: rsync [option] source destination
- 주요 옵션
: -r (--recursive)
> 하위 디렉터리까지 실행
: -l (--links)
> 심볼릭 링크 보존
: -L (--copy-links)
> 심볼릭 링크가 참조하는 파일 복사
: -p (--perms)
> Permission 보존
: -t (--times)
> 타임 스탬프 보존
: -g (--group)
> 그룹 소유권 보존
: -o (--owner)
> 사용자 소유권 보존 (root 계정만 사용 가능)
: -D
> 디바이스 파일 보존
: -H (--hard-links)
> 하드링크 보존
: -a (--archive)
> -rlptgoD 옵션 한번에 실행
: -v (--verbose)
> 자세히 출력
: -u (--update)
> 업데이트 된 내용만 전송
: -z (--compress)
> 전송 시 압축 실행
: -b (--backup)
> 백업 시 같은 이름의 파일 있으면 파일명에 ~을 붙혀서 백업 파일 생성
: -e (--rsh=<command>)
> 원격지에서 사용할 셸 명령어
: --progress
> 명령이 실행되는 동안의 전송 상황 출력
: --delete
> 송신측에 없는 파일이 수신측의 백업 디렉터리에 존재하면 삭제
- 예시
```
rsync -av /test_home /deploy_home
: /test_home을 그대로 /deploy_home에 복원
rsync -avz 192.168.100.1:/test_home /
: 원격지의 /test_home 디렉터리를 루트 디렉터리에 복원. 원격지에 rsync 데몬이 없는 경우 ssh 사용하여 전송
rsync -avz -e ssh 2mukee@192.168.100.1:/test_home /backup_dir
: 원격지에 ssh로 접속하여 백업
```
Refference
'Certification > 리눅스마스터' 카테고리의 다른 글
리눅스 인증 서버 관리 (NIS/LDAP) (0) | 2022.10.20 |
---|---|
리눅스 HTTP 서버 관리 (0) | 2022.10.17 |
리눅스 ACL (Access Control List) 관리 (1) | 2022.10.13 |
리눅스 PAM (Pluggable Authentication Module) 관리 (0) | 2022.10.12 |
리눅스 SSH 서버 관리 (0) | 2022.10.12 |