시스템(Linux)

rsync 에 대해 알아보겠습니다.

forward error correction Circle 2023. 4. 19. 08:31
반응형

Ⅰ. rsync 란?

  rsync는 'Remote Sync'의 줄임말로 Unix 및 Linux 시스템에서 파일이나 디렉토리를 하나의 저장소(서버)에서 다수의 다른 저장소(서버)로 동기화 할 수 있는 소프트웨어입니다.

rsync 를 활용하여 rcp, scp 보다 빠르고 효율적으로 데이터를 동기화 할 수 있습니다.파일의 전체 데이터를 복사하는 대신 변경사항만 동기화해서 빠르게 복사 할 수 있습니다.

Ⅱ. rsync 옵션

옵션명 설명
-v 자세한 정보 출력(verbose)
-z 데이터 압축
-r 하위 디렉터리까지 복사
( 타임 스탬프, 파일 권한은 보존하지 않음)
-a 아카이브 모드(Archive mode)
-h Human-readable format
-t 타임스탬프(Time Stamp) 보존
-l 심볼릭 링크 파일 보존
-p 파일의 권한(Permission) 보존
-g 그룹 속성 보존
-o 소유자 속성 보존
-D Device 관련 파일과 특수 파일 복사

Ⅲ. rsync 설치 및 설정

1. 서버 설정

1.1 rsync 설치여부 확인

1) [root@feccle]# rpm -qa | grep rsync
2) [root@feccle]# yum list installed rsync

1.2 설치

설치되어 있지 않을 경우 yum 명령어를 이용하여 설치 합니다.
 
[root@feccle]# yum install rsync

1.3 /etc/xinetd.d/rsync 파일 수정

rsync를 xinetd를 이용하여 실행시키기 위해 /etc/xinetd.d/rsync 파일을 수정 합니다.
* /etc/xinetd.d/rsync 내용 중, disable 옵션을 no로 변경
 
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

1.4 rsync restart

  xinetd를 이용하여 rsync 서비스를 restart 합니다.

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

1.5 rsync 포트 확인

 netstat, nmap을 이용하여 rsync 포트가 정상적으로 open 되었는지 확인한다.

1) netstat 를 활용한 경우

[root@feccle]# netstat -an | grep 873

2) nmap 툴을 활용한 경우

[root@feccle]# nmap localhost
 
PORT STATE SERVICE
873/tcp open rsync

1.6 /etc/rsyncd.conf 파일 설정

 rsync의 환경설정 파일인 /etc/rsyncd.conf 파일을 설정한다.
 
[rsync1]  # 서비스명
path = /usr/local/src   # 백업 할 디렉토리의 경로
uid = feccle
gid = feccle
use chroot = yes        # path 디렉토리를 root 디렉토리로 사용
read only = no
hosts allow = xxx.xxx.xxx.xxx   ## Client IP
max connections = 1
timout 600
ex) 예시
[rsync1]
path=/usr/local/tomcat/pubilc/upload
uid = root
gid = root
use chroot = yes
read only = no
hosts allow = 192.168.55.25
max connections = 1
timeout=600

1.7 방화벽 확인

 - iptables 명령어로 방화벽을 확인합니다.

 - 873 포트가 열려 있는지 확인합니다. 
[root@feccle]# vi /etc/sysconfig/iptables
-  만약 없다면 아래의 명령어를 추가합니다.
    - A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
 
- 추가후 iptables를 restart 한다. 
[root@feccle]# /etc/init.d/iptables restart
* 해당 Client 주소에도 확인을 합니다.
 
rsync [옵션] IP::[서비스명] [백업 다운받을 디렉토리]
 
ex) rsync -av 192.168.55.25::rsync1 /usr/local/tomcat_2/pubilc/upload
       rsync -av 192.168.55.25::rsync2/usr/local/tomcat_1/pubilc/upload
 
# crontab 설정하기 
 
crontab -e * * * * * [스크립트 경로]
 
crontab -l (crontab 리스트 출력)

crontab -r (crontab 리스트 삭제)

 

 

반응형