[Linux] rsync를 이용한 데이터 (증분)백업 script

반응형
반응형

 

 

실습 환경

웹서버 
hostname : linux-1
백업 서버
hostname : linux-2
linux-1 -> linux-2 ssh-key 등록

 

- 매일 쌓이는 데이터를 하루에 한 번씩 원격지 서버에 백업하는 내용에 대한 스크립트.

- 증분 백업(incremental backup)의 개념으로 최초 백업 시에 FULL 백업으로 진행,

   다음부터는 변경된 내용에 대해서만 백업을 진행함.(동기화 개념으로 볼 수 있다)

- crontab에 등록하여 원하는 일시 및 시간에 실행되도록 설정.

- 백업된 데이터 파일명을 로그에 남김.

- 전송 속도 조정 가능

- "--exclude" 옵션을 이용하여 특정 파일이나 디렉터리 제외 가능 

- 패스워드 없이 실행되도록 key 등록 필요.

 

/root/bin/backup.sh

#!/bin/sh

# linux-1
==============================================================
DATE=date '+%Y%m%d'
LOG_DIR=/var/log/backup_log/
LOG="${LOG_DIR}/backup_$DATE.log"
ERR_LOG="${LOG_DIR}/backup_$DATE_err.log"

RSYNC=/usr/bin/rsync
RSYNC_OPTION="-av --bwlimit=40960 --exclude=not_backup.txt"
DATA=/data/
BACKUP_SERVER=linux-2:/backup_data/
==============================================================

${RSYNC} ${RSYNC_OPTION} ${DATA} ${BACKUP_SERVER} 1>> $LOG 2>> $ERR_LOG

 

crontab 

- 매일 2시 10분에 스크립트 실행

10 2 * * *    /root/bin/backup.sh  1>/dev/null 2>&1
반응형

댓글

Designed by JB FACTORY

loading