Skip to content

rsync 미러링 백업

조회 수 14875 추천 수 0 2009.05.17 10:36:48
1. rsync

 

rsync 는 원격에서 미러링 서버를 구축할때 사용되는 유틸이다.

옵션에 따라 파일의 수정 날짜를 비교해서 수정된 파일만 업데이트 할 수 있기 때문에 처음 한 번만 풀 백업 해두면 그 다음 부턴 아주 빠른 속도로 업데이트 할 수 있다.

 

2. 백업 계획

 

백업 계획은 서버들로부터 새벽 4시경에 1차 백업서버로 매일 백업을 받고, 1주 단위로 1차 백업 서버의 데이터를 일요일 새벽 5시에 2차 백업 서버로 전송받는다.

 

3. rsync 확인

 

백업 대상이 되는 서버들에 rsync 가 설치되어 있는지 확인해보고 없으면 rpm 바이너리를 받아서 설치한다.

 

#rpm -qa rsync

rsync-2.6.3-1

 

rsync 는 ssh 를 이용한 방법과 873포트를 이용한 접속 방법이 있다.

#grep rsync /etc/services

 

여기서는 873 포트를 이용해서 xinetd 데몬으로 동작하도록 설정한다.

초기에는 default 로 xinetd 에서 rsync 가 disable 로 설정되어있으므로 아래와 같이 열어준다.

 

#vi /etc/xinetd.d/rsync

service rsync

{

disable = no => (disable 부분을 no 로 설정해야 활성화 됨)

socket_type = stream

wait = no

user = root

server = /usr/bin/rsync

server_args = --daemon

log_on_failure += USERID

}

 

또는

#chkconfig rsync on

xinetd의 재시작

#/etc/init.d/xinetd restart

 

4. 백업 대상 시스템 설정

 

rsync 의 설정파일은 /etc/rsyncd.conf 인데 rsync 설치후에도 존재하지 않는다.

백업할 대상은 /home 파티션과 대부분의 설정이 들어있는 /etc 전체로 했다.

 

#vi /etc/rsyncd.conf

[home] =>rsync 에서 사용할 alias name

path = /home =>실제 디렉토리 절대 경로

comment = home directory

uid = root

gid = root

use chroot = yes

read only = yes

hosts allow = ***.***.***.*** =>접근을 허용할 백업 서버 ip

max connections = 1

timeout = 300

 

[etc]

path = /etc

comment = config-dir

uid = root

gid = root

use chroot = yes

read only = yes

hosts allow = ***.***.***.***

max connections = 1

timeout = 300

 

이렇게 해서 저장하면 설정은 끝났다.

 

슈퍼 데몬을 재시작하고

#/etc/rc.d/init.d/xinetd restart

 

포트가 열려있는지 netstat 이나 telnet 명령으로 873포트를 확인해본다.

#telnet localhost 873

Trying 127.0.0.1...

Connected to localhost.

Escape character is `^]`.

 

]#netstat -na | grep LISTEN

tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN

 

873 포트가 보인다면 설정은 OK

 

이제 백업 대상 서버들의 설정은 끝났고, 1차 백업 서버를 세팅할 차례다.

 

5. 백업 서버의 설정

 

백업할 서버 역시 rsync가 설치 되어있는지 확인해보고 없으면 설치한다.

1차 백업 서버에 접속한 상태로 아까 세팅해 놓은 백업 당할 서버에 rsync

포트로 접속이 가능한지 테스트 해본다.

 

]#telnet ***.***.***.*** 873

Trying 127.0.0.1...

Connected to ***.***.***.***.

Escape character is `^]`.

 

이렇게 대기 상태면 OK

 

만약 connect refuse 가 나오면 백업당할 서버의 세팅을 처음부터 다시 살펴본다.

 

 

이제 백업 과정을 기록할 로그 파일을 수동으로 만들 것 이다.

 

적당한 디렉토리( 예를 들면 /data/rsync-log)를 생성하고 파일을 기록할 수 있도록 권한을 조정한다.

 

cron 에 등록해서 하루에 1번 새벽 4시에 백업하기로 했으므로 우선

/etc/crontab 을 수정한다.

 

#vi /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

 

# run-parts

01 * * * * root run-parts /etc/cron.hourly

01 4 * * * root run-parts /etc/cron.daily

00 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

 

/etc/cron.daily 디렉토리에 있는 놈들을 매일 새벽 4시1분에 실행 하도록 되었다.

 

이제 /etc/cron.daily 에 백업 스크립트만 생성하면 된다.

 

#vi backup.sh

#!/bin/sh

 

startbackup=`date +%Y%m%d%H%M%S`

touch /data/rsync-log/159.backup.log

echo $startbackup.start >> /data/rsync-log/159.backup.log

 

rsync -avz 192.168.179.169::home_directory /data/169/home/

rsync -avz 192.168.179.169::etc /data/169/etc/

 

endbackup=`date +%Y%m%d%H%M%S`

echo $endbackup.end >> /data/rsync-log/159.backup.log

 

 

위의 설정은 백업을 시작할때 날짜를 이름으로 가지는 빈파일 /data/rsync-log/159.backup.log를 생성하고 백업이 끝난후에 다시 같은 위치에 시간이 기록된 파일을 생성시켜서 나중에 백업에 걸린 시간을 비교할 수 있게 되어 있다.

 

-a는 아카이브 모드. 심볼릭 링크, 속성, 퍼미션, 소유권 등 보존

-v 전송 상태를 보여줌

-z 전송시 압축을 함.

 

특정 시간 백업의 설정

crontab의 설정이 아닌 특정 시간(매주 일요일 2시 20분)에 백업을 원할 경우 앞서 만든 backup.sh 파일을 /etc에 넣고

/etc/cron.d 디렉토리에 backup 파일을 아래와 같이 생성한다.

#vi backup

20 2 * * 0 root /etc/backup

 

 

6. 2차 백업 서버 설정

 

2차 백업 서버를 세팅은 1차 백업서버의 /data 디렉토리를 2차 서버에 백업하는 방법으로 위 방법을 참고로 구성할 수 있다.

profile

일요일은 짜빠게뤼~ 먹는날~^^

엮인글 :
http://adminplay.com/1693/c9f/trackback
List of Articles
번호 제목 글쓴이 날짜 조회 수
67 리눅스 시스템 관리자를 위한 즐겨찾기 ADMINPLAY 2009-05-22 25018
66 리눅스 언어 인코딩 설정 ADMINPLAY 2009-05-22 21952
65 Disk Quota : 용량 제한 하기 ADMINPLAY 2009-05-22 16720
64 알아두면 편리한 단축키(콘솔) ADMINPLAY 2009-05-22 16566
63 리눅스 디렉토리 구조와 파티션 관리의 기본 ADMINPLAY 2009-05-22 60763
62 vi편집기 행번호 표시, 들여쓰기 ADMINPLAY 2009-05-22 18255
61 리눅스 시스템 log 파일 정리 ADMINPLAY 2009-05-22 20389
60 vim 편집기 색상변경 ADMINPLAY 2009-05-17 22229
59 rsync 옵션 ADMINPLAY 2009-05-17 21027
58 [rsync]서버 백업및 동기화 ADMINPLAY 2009-05-17 17571
» rsync 미러링 백업 ADMINPLAY 2009-05-17 14875
56 SSH 서버 설정 파일(sshd_config) ADMINPLAY 2009-05-17 18031
55 rsync 에러 ADMINPLAY 2009-05-17 22377
54 rsync : protocol version mismatch -- is your shell clean? ADMINPLAY 2009-05-17 26234
53 리눅스 기본 명령어 # 2 ADMINPLAY 2009-05-11 15663
52 리눅스 기본 명령어 # 1 ADMINPLAY 2009-05-11 16854
51 vi(Visual) Editor 사용법 ADMINPLAY 2009-05-11 16164
50 리눅스 네트워크 설정 ADMINPLAY 2009-05-11 21874
49 데몬(Daemon)이란? ADMINPLAY 2009-05-11 16389
48 슈퍼데몬 : xinetd ADMINPLAY 2009-05-11 17606

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234