Utils [Ubuntu] rsync로 백업 하기

[Ubuntu] rsync로 백업 하기

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. 명령어 

 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 PATTERNcs

그럼 실습을 통해 알아보면

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/

=

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Related Post

[JenKins] Jenkins sudo: not found Build step ‘Execute shell’ marked build as failure 권한 에러 해결하기[JenKins] Jenkins sudo: not found Build step ‘Execute shell’ marked build as failure 권한 에러 해결하기

Jenkins로 docker 이미지를 빌드하고 hub에 푸시하는 과정을 .sh 파일 하나를 실행해서 한꺼번에 수행하려고 합니다. 하지만 Jenkins가 ec2 서버에서  sudo 명령어를 실행하려면, Jenkins에게 따로 권한을 줘야합니다. 권한을 주지 않고 빌드하면 sudo:

[Linux] Could not get lock /var/lib/dpkg/lock/frontend/ , Error[Linux] Could not get lock /var/lib/dpkg/lock/frontend/ , Error

이와같은 에러가 날경우 Node.js 설치할때 발생되는 오류가고 하지만 본인의경우는 가상환경이나 다른 pc에도 우분투를 설치할때 이와같은 에러가 항상 빈번하게 발생됬다. 그래서 아래와 같이 몇몇 폴더를 삭제하고 재 업데이트를 해주면 대부분 해결되었다.