리눅스에서 다량의 파일들을 전송/수신하고, 데이터 증분치에 대한 반영을 할 수 있는 가장 좋은 방법은 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) : 전송 암호화
'컴퓨터 > Linux System and Server' 카테고리의 다른 글
Qmail 로그 정상시간으로 보기 (Qmail log 확인) (0) | 2018.05.14 |
---|---|
/var/qmail/bin/qmail-smtpd: error while loading shared libraries: libvpopmail.so: cannot open shared object file: No such file or directory (0) | 2018.05.13 |
MYSQLADMIN 사용법 , 백업 및 복구 (0) | 2018.05.11 |
DNSCrypt로 짜증나는 DNS Warning 사이트를 피해보자. (DNS 질의 암호화 방법) (0) | 2018.05.05 |
리눅스 관련 팁모음 (0) | 2018.05.02 |