Skip to content

rsync 미러링 백업

조회 수 14851 추천 수 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/f50/trackback
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
327 Http Live Streaming 으로 아이폰 동영상 서비스 ADMINPLAY 2012-02-07 29105
326 고정아이피 설정하기(Ubuntu Server DIY ) l2zeo 2010-02-20 28543
325 [linux] 리눅스에서 hostname 변경과 구동과정 ADMINPLAY 2010-12-16 28299
324 FFmpeg ADMINPLAY 2010-05-03 27924
323 리눅스 패키지 정보 확인 ADMINPLAY 2010-05-03 27658
322 악성코드 일괄 삭제 ADMINPLAY 2010-04-17 27427
321 System V 메시지 큐(Message Queue), 세마포어(Semaphore)... ADMINPLAY 2010-04-28 27342
320 insmod,rnmod,lsmod,modprobe 명령어 ADMINPLAY 2010-05-02 27187
319 L4 스위치 대신 LVS로 부하분산 해결 ADMINPLAY 2009-11-30 27162
318 JWPlayer 사용법 ADMINPLAY 2010-11-11 27087
317 CentOS 4, CentOS 5, CentOS 6 에 NTFS 파일시스템 마운트... ADMINPLAY 2012-01-16 27045
316 리눅스 데몬의 종류 (서비스 종류) ADMINPLAY 2010-06-26 27015
315 Making Linux Streaming Server RED5 스트리밍 리눅스서버... ADMINPLAY 2009-09-24 26636
314 [UNIX] 솔라리스 보안 [ 발표자료 ] - 김 석 님 자료 file l2zeo 2010-03-08 26458
313 usb 부팅 리눅스 만들기(knoppix) ADMINPLAY 2009-08-08 26440
312 리눅스 한글 설정 l2zeo 2010-03-08 26437
311 리눅스 하드디스크 에러메세지 ADMINPLAY 2009-11-01 26418
310 net-snmp 설치 및 snmp 사용법 ADMINPLAY 2009-06-24 26412
309 sftp 포트 변경시 접속 ADMINPLAY 2010-11-10 26402
308 oracle IP 변경시 변경 해야될 파일 ADMINPLAY 2009-11-01 26281

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234