본문 바로가기
  • 산에사는 꽃사랑......
컴퓨터/Linux System and Server

[Linux] 리눅스 rsync 설정 방법

by 산에사는꽃사랑 2018. 5. 10.
 
 

리눅스에서 다량의 파일들을 전송/수신하고, 데이터 증분치에 대한 반영을 할 수 있는 가장 좋은 방법은 rsync가 아닐까 생각한다.(혹시 더 좋은 방법이 있으면 추천 부탁드립니다.) rsync 서버 및 클라이언트 설정 방법을 정리해본다. 여기서는 192.168.123.10에 있는 데이터를 192.168.123.11로 가져가는 예시를 들어본다.

 

 

<rsync 서버 설정>

 

rsync 서버 설정 1) rsync 패키지 확인

# rpm -qa | grep rsync

 

** 설치가 안 되어있을 경우

# yum install rsync

 

 

rsync 서버 설정 2) xinetd 패키지 확인

# rpm -qa | grep xinetd

 

** 설치가 안 되어있을 경우

# yum install xinetd

 

 

rsync 서버 설정 3) rsnyc 사용 설정

# vi /etc/xinetd.d/rsync

'disable = yes' 라고 되어있는 부분을 'disable = no' 로 변경한다.

 

===================================================================

# 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

        server          = /usr/bin/rsync

        server_args     = --daemon

        log_on_failure  += USERID

}

===================================================================

 

 

rsync 서버 설정 4) rsync 설정

# vi /etc/rsyncd.conf

/etc/rsyncd.conf의 경우 처음에는 없는 파일일 가능성이 높다. 편집기를 이용해 새로 작성해준다.

 

====================================================

[rsync_test]                                 -> 사용할 rsync 서비스 이름

path=/data/rsync_test/                  -> 데이터 원본 경로

comment = rsync_test                   -> 코멘트

uid = root                                       -> 권한 사용자

gid = root                                       -> 권한 그룹

use chroot = yes

read only = yes

hosts allow = 192.168.123.11     -> rsync 클라이언트 IP. localhost일 경우 입력하지 않아도 됨

max connections = 3

timeout=600

====================================================

 

 

rsync 서버 설정 5) xinetd 서비스 재시작 및 방화벽 확인

# /etc/init.d/xinetd restart

 

보통 iptables 에서 포트가 막혀있는 경우가 많다.

rsync는 873 포트를 사용하므로, 873 포트 허용해준다.

 

 

 

<rsync 클라이언트 설정>

 

rsync 클라이언트 설정 1) rsync 접속 여부 확인

# telnet [rsync 서버 IP] 873

ex) telnet 192.168.123.10 873

telnet을 이용하여 873 포트가 정상적으로 연결되는지 확인한다.

 

 

 

rsync 클라이언트 설정 2) rsync 실행

# rsync -avz [IP]::[서비스명] 저장디렉토리

ex) # rsync -avz 192.168.123.10::rsync_test /data/rsync_test

 

혹시 내역을 로그로 남기고 싶을 경우 아래와 같이 입력한다.

rsync -avz 192.168.123.10::rsync_test /data/rsync_test > /data/rsync.log



#1. 데이타센터에서 온 백그라운드 작업

rsync 옵션은 아래의 옵션을 권장 드립니다.

(데이터를 당겨올  신규 서버에서)

nohup rsync -avzur --progress -e "ssh -p 22" 원본IP:원본서버복사경로 대체서버저장경로 &

예) nohup rsync -avzur --progress -e "ssh -p 22" 192.168.0.10:/backup/DB/ /backup/DB/ &

 

주요 옵션 #

-v : 진행 상황을 상세하게 보여줌  -r : 지정한 디렉토리의 하위 디렉토리까지 재귀적으로 실행  -l : 소프트 링크 보존  -H : 하드 링크 보존  -p : 버전 속성 보존  -o : 소유 속성 보존(루트)  -g : 그룹 속성 보존  -t : 타임스탬프 보존  -D : 디바이스 파일 보존(루트)  -z : 데이터 압축 전송  -b : 낡은 파일은 ~가 붙음  -u : 추가된 파일만 전송 새 파일은 갱신하지 않음  --existing : 추가된 파일은 전송하지 않고 갱신된 파일만 전송  --delete : 서버에 없는 파일은 클라이언트에서도 삭제  -a : 아카이브 모드. rlptgoD를 자동 지정  -c : 서버와 클라이언트의 파일 크기를 세밀히 체크  --stats : 결과를 보고  -e ssh(rsh) : 전송 암호화