로그인

검색

XE
2014.05.01 23:13

리눅스 백업서버 만들기

조회 수 6671 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
204 Pydio ajaxplorer 3.0 설정 및 한글 파일 다운로드 및 압축문제 해결 file 보석 2011.10.16 16443
203 Pydio ajaXplorer 한글파일 업로드시 411 에러 해결법 보석 2014.02.09 7510
202 Server CSS Background 속성 보석 2011.10.03 9759
201 Server DB 백업 스크립트 (우분투 기준) 보석 2011.05.15 12307
200 Server Install Nginx, PHP5, PHP-FPM and MySQL on Ubuntu 11.04 보석 2011.10.31 25494
199 Server Installing Nginx With PHP5 (And PHP-FPM) And MySQL Support On Ubuntu 11.10 1 보석 2011.11.01 25692
198 KimsQ kimsq v1.1.0 기준 nginx rewrite rule 보석 2013.08.23 12777
197 Server kimsq 파일 다운로드시 포인트 차감 설정 보석 2011.05.18 11305
196 기타 MySQL 기본쿼리 : DELETE 문 보석 2013.03.14 15561
195 Server mysql 튜닝 방법 보석 2013.08.25 17577
194 Server Nginx 가상호스트 설정 1 보석 2011.10.31 27860
193 Server nginx 무한 F5 막기 보석 2014.04.08 6527
192 Server Nginx 버전 정보 숨기기 보석 2013.08.23 16925
191 Server nginx 첨부파일 용량 설정 보석 2012.04.02 18747
190 Server Proftp 버전 및 프로그램명 숨기기 보석 2013.08.23 18299
189 Pydio Pydio AjaXplorer Mcrypt Enabled, Security Brench, Server charset encoding, php output disabled 오류해결 보석 2016.05.18 106
188 Pydio Pydio AjaXplorer 버전별 다운로드 보석 2016.05.18 88
187 Pydio Pydio AjaXplorer 업로드후 Impossible write into the AJXP_DATA_PATH folder ajaxplorer 나올때 보석 2016.05.18 181
186 KimsQ RBSHOP 킴스큐쇼핑몰 가입시 포인트 적립금으로 바꾸기 보석 2013.08.23 15071
185 Server Rewrite 묘듈 활성화 Apache rewrite 활성화하기 보석 2013.08.23 17584
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11