Programming/Server & Database

[Ubuntu] rsync로 백업 하기

BadaGreen_Kim 2021. 1. 29. 15:09

RSYNC(Remote SYNChronize)는

로컬 또는 원격으로 "파일 또는 디렉토리"를 백업 또는 동기화할 수 있는 명령어이다.

 

먼저 Ubuntu 환경에서 Storage 갯수와 상태를 확인하고 Storage 갯수에 따라 백업환경을 설계해야한다. 백업종류로는 3가이다.

  • 압축 백업 : (tar -czpf 백업) 일반적으로 많이 쓰이는 백업입니다. 이 작업에는 CPU 가 많이 사용된다.
  • 복사 백업 : (cp -R 백업) 압축하지 않고 복사만 합니다. 사용 용량을 많이 차지하지만 (압축하지 않는다는 뜻) 백업할 때 CPU 사용량이 크게 증가하지는 않음.
  • 증분 백업 : (rsync 백업) 변동사항만 비교하여 백업합니다. 비교를 위해서 파일은 항상 압축되지 않은 상태로 보관된다.

1 . 개요

cron, cronie, crond, cron daemon, crontab, cron job, crontab job크론, 크론 데몬, 크론탭, 크론작업, 리눅스 작업 스케줄러/usr/sbin/crond/usr/bin/crontab

  • 프로세스 예약 데몬

  • 리눅스용 작업 스케줄러

  • 특정시각에 명령어가 수행되도록 등록가능

  • cronie(패키지) = crond(데몬) + crontab(크론 계획표)

    [1]

  • 로그: /var/log/cron에 변경/수행 이력이 기록됨

  • 런레벨, 사용자 권한 등 환경에 따라 GUI 프로그램을 실행시키거나 X윈도우에서 별도의 창을 띄우는 작업은 불가능할 수 있음

2. 등록형식

          • 수행할 명령어 ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───────── 요일 (0 - 6) (0:일요일, 1:월요일, 2:화요일, …, 6:토요일) │ │ │ └───────── 월 (1 - 12) │ │ └───────── 일 (1 - 31) │ └───────── 시 (0 - 23) └───────── 분 (0 - 59)
      text

→ "분시일월요"

  • * * * * * 1분 마다 실행
  • 30 * * * * 매시 30분마다 실행
  • 0 0 10 * * 매월 10일 0시 0분에 실행
  • * 10 * * 매월 10일에 1분 마다 실행
  • 0 0 10 4 * 매년 4월 10일에 0시 0분에 실행
  • 0 0 * * 1 매주 월요일 0시 0분에 실행 (요일의 숫자표현: 일0 월1 화2 수3 목4 금5 토6)
  • 0 * * * 1 매주 월요일 매시 0분에 실행

→ 주말(일요일, 토요일) 08:00

 

3. 명령어 

1
2
3
4
5
6
7
8
9
10
11
12
13
 r: recurse into directories
-l: Copy symlinks as symlinks
-p: Preserve permissions
-t: Preserve times
-g: Preserve group
-o: Preserve owner
-D: Preserve devices
-a: -rlptgoD (=Archive mode)
-z: Compress file data during the transfer
-v: Increase verbosity
-u: update only (don't overwrite files)
--exclude=PATTERN: Exclude files matching PATTERN
--include=PATTERN: Don't exclude files matching PATTERN
cs

 

 

그럼 실습을 통해 알아보면

 

rsync -a /tmp/alpha/ /tmp/beta/

b1.txt는 그대로 유지되었고, common1.txt파일은 대체되었고, a1.txt파일은 추가되었다

만약 u 옵션을 추가하여 실행했다면 b1.txt, common1.txt파일은 그대로 유지되고 a1.txt파일만 추가됩니다.

# rsync -au /tmp/alpha/ /tmp/beta/

=