로그인

검색

XE
2014.05.01 23:13

리눅스 백업서버 만들기

조회 수 7089 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄


홈페이지 운영에서 가장 중요한 백업은 데이터베이스와 첨부화일입니다.

DB와 첨부화일만 있으면 100%복원이 가능합니다.


물론 프로그램이나 설정화일까지 백업을 하면 시간을 많이 절약하겠지만 홈페이지를 백업하는 것은 똑같은 내용을 이중삼중으로 보관하는 것이기 때문에 디스크공간을 많이 차지합니다.

한때는 홈페이지의 데이터를 개인용 PC에서 백업했었습니다.

이방법 역시 cygwin을 통한 리눅스의 rsync를 이용하는 방법이었습니다.

기본적인 개념은 리눅스 rsync와 똑같지만 PC에서 돌아가는 프로그램인 만큼 프로그램도 다르고 설정도 차이가 있습니다. 관심있으시면 구글신하고 상담(??)을 해보시기 바랍니다.


지금은 집에 아예 버젓한 리눅스서버를 설치했으니 리눅스에서 리눅스로 설정하는 방법만 간단하게 정리를 해보겠습니다.


두대의 서버가 있고 한대의 자료를 나머지 하나로 백업하는 방법입니다.

물론 둘다 rsync가 설치되어있어야겠지요.

설치방법과 프로그램 폴더의 위치는 OS마다 다르니 참고하시기 바랍니다.

제경우는 둘다 CentOS입니다. replication과 다르기는 하지만 편의상 Master와 Slave로 표기하겠습니다.


먼저 마스터서버를 설정합니다.

[root@Mater]# vi /etc/xinetd.d/rsync 


아래 내용을 추가합니다.

# default: off

# description: The rsync server is a good addition to an ftp server, as it \

#   allows crc checksumming etc.

service rsync

{

    disable = no

    socket_type     = stream

    wait            = no

    user            = root

    flags       = REUSE NAMEINARGS

port          = 873

#   server          = /usr/bin/rsync

server        /usr/sbin/tcpd

#   server_args     = --daemon

server_args   = /usr/bin/rsync rsyncd --daemon

only_from     = 127.0.0.1 xxx.xxx.xxx.xxxx

#   log_on_failure  += USERID

log_on_success  += DURATION HOST USERID

특히 서버프로그램의 위치는 각자 알맞게 수정해주시는 센스....


이제 rsyncd.conf에서 설정을 해줘야합니다.

[root@Mater]# vi /etc/rsyncd.conf 


일단 두개의 사이트의 첨부화일만 백업하는 방법을 설명합니다.

[MyUrlfile]

path = /home/http/htdocs/MyUrl.com/xe/files/attach

comment = My Url attach files

uid = nobody

gid = nobody

use chroot = yes

read only = yes

hosts allow = xxx.xxx.xxx.xxx

max connections = 2

timeout = 300



[OtherUrlFile]

path = /home/http/htdocs/OtherUrl.com/xe/files/attach

comment = Other Url attach files

uid = nobody

gid = nobody

use chroot = yes

read only = yes

hosts allow = xxx.xxx.xxx.xxx

max connections = 2

timeout = 3000 

path에는 백업할 화일들의 위치를 입력하고

hosts allow에는 백업화일을 저장한 slave의 ip주소를 입력합니다.

여러개의 홈페이지를 운영한다면 이런식으로 여러개의 설정이 가능합니다.


앞서도 말씀 드렸드니 DB를 따로 백업한다는 전제하에 홈페이지 첨부화일만 보관하는 것이 좋습니다.

XE의 경우 ./files 폴더에 저장되지만

cache 화일든은 생겼다 없어지고 하는 화일들이라 통채로 백업하면 쓸데없는 저장공간과 트래픽만 소모합니다.

따라서 ./files/attach 폴더만 백업하는 것이 좋습니다.


rsync를 재가동합니다.

[root@Mater]# /etc/init.d/xinetd restart 


처음설정하고나서 iptable에 의해서 막혀있는 873번포트를 개방해주지 않으면 동작하지 못합니다.

따라서 iptables에서 규칙을 추가해줍니다.


[root@Mater]#vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT 


이제 iptable을 재가동합니다.

[root@Mater]# /etc/init.d/iptables restart 


마스터에서의 설정을 여기까지..................


이제 슬레이브로 갑니다.


먼저 접속이 잘되는지 테스트해봅시다.

[root@Slave]# telnet 192.168.0.1 873

Trying 192.168.0.1...

Connected to 115.68.14.215 (115.68.14.215).

Escape character is '^] 


telnet> quit
Connection closed.

마스터 서버의 ip주소 873번 포트로 접속을 시도합니다.

연결이 되지 않는다면 마스터서버의 설정을 한번 더 살펴보시기 바랍니다.



rsync로 직접 화일을 가져와봅시다.

[root@Slave]# rsync -avz --delete 서버IP.xxx.xxx.xxx:MyUrlfile /home1/MyUrlBackup/

--delete 옵션을 사용하면 서버에서 삭제된 화일은 백업화일에서도 삭제됩니다.

이 옵션없이 백업을 하는 경우 삭제된 화일도 누적되어 남아있게 됩니다. 특히 cache나 session까지 백업되는 경우 하드공간을 한없이 차지하게 되어서 비경제적입니다.


잘 동작되는 것을 확인했으면 cron에 추가해줍니다.

[root@Slave]# vi /etc/cron.daily/backup.sh


/etc/cron.daily 폴더에 있는 쉘프로그램은 하루에 한번씩 동작합니다.

#!/bin/bash

rsync -avz --delete 서버IP.xxx.xxx.xxx:::MyUrlFile /home1/MyUrlBackup/

rsync -avz --delete 서버IP.xxx.xxx.xxx:::OtherUrlFile /home1/OtherUrlBackup/

일주일에 한번만 백업하려면 쉘스크립트를  /etc/cron.weekly 에 만들어줍니다.

만약 매시간 백업을 해야할 중요한 화일이라면 /etc/cron.hourly/에 넣어주면 됩니다.


참고 윈도우 PC에서도 rsync가 가능합니다.

이건 해봤습니다.

다만 PC에 cygwin을 깔고 rsync와 SSH등등 깔아야할 것도 많고 설정도 복잡하다.

요즘에는 사용을 하지 않는 가장 큰이유는 한글과 화일이름때문...

utf8을 yp949로 변환해야하고

리눅스는 대소문자를 구분하지만 윈도우즈는 구분을 안한다.

즉 리눅스서버에는 AAA.jpg가 있고 aaa.jpg가 있을 수 있지만 윈도우즈에는 둘중 하나만 저장된다. 

쉽게 말해서 하나는 소실이 된다... 안쓴다...

XE에서는 별 문제가 없겠지만 옛날 제로보드4처럼 한폴더에 화일을 몽땅 처넣는 방식의 경우 겹치는 화일이 몽땅 소실됬다..



리눅스

유용한 정보 및 자료

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
184 XE XE 글이나 코멘트에서 글자수 제한하기 1 보석 2011.07.27 18792
183 Server 리눅스 vsFTP 사용자 계정 홈디렉토리 변경 보석 2011.08.31 20876
182 Server 리눅스 파일 복사 및 이동 명령어 사용법 1 보석 2011.08.31 18304
181 Server 우분투에서 압축하고 풀기( tar, gzip, tar.gz ) 보석 2011.08.31 16166
180 Server [리눅스] 새 계정 만들기/지우기, 사용자 아이디 추가/삭제; Create Account 1 보석 2011.08.31 39619
179 Server 우분투 크론 (예약작업) 설정 자동 백업 4 보석 2011.09.01 16321
178 XE XE 추천 비추천수 로그확인 보석 2011.09.07 19074
177 XE svn 으로 다운 받기 xe 보석 2011.09.10 17989
176 XE XE Core 1.4.4 새 템플릿 문법을 소개합니다. 간결+판독. 보석 2011.09.14 14784
175 XE xe 첨부파일 스팸필터 보석 2011.09.15 17721
174 Server CSS Background 속성 보석 2011.10.03 10178
173 Pydio ajaxplorer 3.0 설정 및 한글 파일 다운로드 및 압축문제 해결 file 보석 2011.10.16 16789
172 XE XE 회원에게도 제목 글자색변경 나오게 하기 보석 2011.10.17 18838
171 Server 리눅스 (우분투) vsftp 설치 및 설정 보석 2011.10.17 15596
170 Server 리눅스용 무료 웹하드 <shade webhard> 설치하기 file 보석 2011.10.17 36540
169 Server 우분투 PHP5.3 버젼에 ioncube설치하기 보석 2011.10.17 26180
168 Server 링크하드 리눅스 설치 성공담 - 웹하드 WebHard Linux Install 보석 2011.10.17 27452
167 Server 우분투 Memcached 설치는 이렇게 보석 2011.10.19 29265
166 XE XE 1.5.0.4 버전에서 Content 슬라이더 위젯 오류 해결 방법 보석 2011.10.19 12937
165 Server 테이블 형태 변경하기 MyISAM -> InnoDB(또는 InnoDB -> MyISAM) 보석 2011.10.21 26418
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11