티스토리 뷰

Linux

rsync 동기화 설정

CHOMAN 2015. 6. 4. 13:50

테스트 환경 Centos5, 6

설치

yum install rsyncd*

xinetd (슈퍼데몬)

vim /etc/xinetd.d/rsync

- disable = yes → disable = no 수정  

현재 xinetd 데몬과 연동하지 않아도 별도의 rsync 데몬이 제공되어서 필수는 아님
자동 백업이 아닌 수동 백업인 경우 패스워드를 입력해줄 경우 설정없이 바로 복사 가능함

방화벽에서 TCP / 873 포트 오픈

원본에서 rsyncd 설정을 하던 복사받는쪽에서 rsyncd 설정을 하든 상관없음

vim /etc/rsyncd.conf (원본 DATA가 있는쪽 서버에서 설정) - 원본

[home] ; 백업서비스 이름  
path = /home ; 백업할 자료가 있는 경로  
comment = HomeBackup ; 코멘트  
uid = root ; 파일을 전송하는 사용자 ID, 디폴트 nobody  
gid = root ; 파일을 전송하는 사용자 그룹 id, 디폴트 nobody  
use chroot = yes ; path 를 root 디렉토리로 사용, 보안상 필요  
**read only = yes ; 읽기전용  
**hosts allow = IP ; 호스트별 접속 허용, 디폴트는 all host  
max connections = 1 ; 동시접속자수  
timeout 600 ; 클라이언트 접근시 타임아웃시간, anoymous 운영시 설정이 되어 있어야 클라이언트가  
죽었을때 접속해제 가능  

: 위 예제와 같이 대괄호 [ ] 묶어서 2개 이상 설정도 가능하다

vim /etc/rsyncd.conf (동기화 당하는쪽 서버 에서 설정) - 복사본

[home] ; 백업서비스 이름  
path = /home ; 백업할 자료가 있는 경로  
comment = HomeBackup ; 코멘트  
uid = root ; 파일을 전송하는 사용자 ID, 디폴트 nobody  
gid = root ; 파일을 전송하는 사용자 그룹 id, 디폴트 nobody  
use chroot = yes ; path 를 root 디렉토리로 사용, 보안상 필요  
**read only = no ; 쓰기 가능  
**hosts allow = IP ; 호스트별 접속 허용, 디폴트는 all host  
max connections = 1 ; 동시접속자수  
timeout 600 ; 클라이언트 접근시 타임아웃시간, anoymous 운영시 설정이 되어 있어야 클라이언트가  
죽었을때 접속해제 가능

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

  • 설정파일 변경한후는 무조건 restart 해준다...

rsyncd 백업하는 방법... (For 슈퍼데몬 xinetd)**

기본형식

데이터를 보내거나 받거나 어떤 설정이든 원본이 앞에 명시되고 복사본이 뒤에 명시되어야 함
반대로 하는 경우 원본 데이터가 삭제될 수 있으니 원본 데이터 백업후에 테스팅은 필수

rsyncd 댕김

rsync -avzPog 원본쪽IP::백업이름 백업디렉토리

ex) rsync -avzPog 192.168.15.178::test /home/test/

rsyncd 밀다

rsync -avzPog 백업디렉토리 복사본만들IP::백업이름

ex) rsync -avzPog /data1/ 192.168.15.179::data1

ssh를 사용한 미러링

  • xinted 설정파일 및 rsyncd.conf 파일 필요없음, 사용자 인증만 되면 동기화 가능

ex ) rsync -avz -e ssh hostname(IP):/타켓경로 / 백업받을경로

rsync -avz -e "ssh -p 22" XXX.XXX.30.229:/home /backup/

rsync -avzPog /etc/shadowroot@XXX.XXX.15.178:/etc

op)

-a : archive mode 심볼릭 링크, 속성, 퍼미션, 소유권 보존
-v : verbose 진행상황 표시
-z : compress 전송시 압축 수행
-u : update only 새로운 파일을 덮어쓰지 않음
-e : 복사를 위한 원격접속쉘 프로그램을 설정한다
--delete : 서버측에 없고 클라이언트측에만 있는 파일을 지운다
--ignore-existing : 복사본쪽에 파일이 존재하면 건너뛴다
--update : 복사본쪽이 최신 파일이면 건너뛴다
: 은 ssh 나 rsh 를 이용할때 사용
:: 은 TCP 873 포트를 이용할때 설정 (xinetd)

z 옵션은 압축하여 전송하고 다시 복사본쪽에 압축푸는 작업 발생 (넣을지 뺄지 테스팅 해보자)

퍼미션 무시하고 (덮어쓰지 않고) 동기화 하기
"-rltgoDvz" 옵션 사용하면 됨

ex)
rsync -avzrO --delete --exclude="backup-53/" 115.XX.XX.52::DB /home/backup-52

  • 115.XX.XX.52에 설정된 DB라는 이름의 백업을 /home/backup-52파티션에 복사
  • 해당 원본의 backup-53/ 폴더를 제외하고 백업을 함

파일 확장자로도 가능

--exclude="mysql-bin.*"
--exclude=*.bak  
--exclude=*.info  
--exclude="backup-53/" : backup-53 폴더는 생기지만 하위자료 복사 안됨  
--exclude="backup-53/" : backup-53 폴더도 생성되지 않음

--exclude 옵션은 절대경로가 아닌 상대경로임

error) 아래와 같이 에러시 설정부분에 문제가 없는데 계속 에러가 난다면 selinux 해제 하자 (setenforce 0)

[root@localhost /]# rsync -avzO 192.168.2.53::TEST /home/backup-53/  
receiving file list ... rsync: opendir "/." (in TEST) failed: Permission denied (13)  
done  
sent 70 bytes received 133 bytes 406.00 bytes/sec  
total size is 0 speedup is 0.00  
rsync error: some files could not be transferred (code 23) at main.c(1385)

'Linux' 카테고리의 다른 글

cron (crontab)  (0) 2015.06.04
MON tools 설치  (0) 2015.06.04
NTP(Network Time Protocol) 서버 구축  (0) 2015.06.04
error getting update info: Cannot retrieve repository metadata  (0) 2015.06.04
You have new mail in /var/spool/mail/root  (0) 2015.06.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함