RSYNC 사용하기.
RSYNC.
생각보다 많은 곳에 사용하는 기능이다.
백업, 배포, 등등등 생각보다 많은 장소에서 쓰인다.
LINUX 에서 파일을 복사하는 등의 작업을 하는 경우,
이어받기와 비슷한 느낌의 기능도 되어있기 때문에
(RSYNC 는 Server 와 Client 간 서로 다른 자료만 전달한다)
서버 개발자 또는 관리자라면 굉장히 긴밀하게 사용할 것이다.
RSYNC 를 사용하기 위해선 먼저 xinetd 와 rsync 가 설치되어 있어야 한다.
RSYNC는 굳이 버전에 큰 차이가 없으니 귀찮으니까 yum 으로 설치하려 한다.
$ rpm -qa | grep rsync$ rpm -qa | grep xinetd
위 명령어로 설치 여부를 확인 후 없으면 없는 것만 설치하자.
$ yum install rsync$ yum install xinetd
xinetd 와 rsync 가 설치되었다면, rsync 설치 화면 으로 넘어간다.
$ vim /etc/xinetd.d/rsync
service rsync{disable = yessocket_type = streamwait = nouser = rootserver = /usr/bin/rsyncserver_args = --daemonlog_on_failure += USERID}
위 파일에 들어가면 아랫줄과 같은 부분이 있는데, disable 부분을 no 로 바꾸고 저장한다.
- SERVER 설정
rsync 는 rsync 포트 (기본 873) 를 사용해 전송하는 방식이 있고,
ssh 포트 (기본 22) 를 사용해 전송하는 방식이 있다.
873 포트를 이용한 전송방식은 아래와 같은 셋팅이 필요하다
$ vim /etc/rsync.conf
max connection = 10log file = /var/log/rsync.logtimeout = 300
[test]comment = rsync server testpath = /home/Service/testread only = nouid = rootgid = roothosts allow = 127.0.0.1
맨 위 대괄호로 되어 있는 부분이 rsync 의 프로젝트 명이다.
host allow 는 보안을 위해 있는 부분인데, 입력하지 않으면 전체 오픈된다.
위 셋팅을 완료 후 rsync 서비스를 재시작 한다.
$ /etc/init.d/xinetd restart
위와 같이 생성했으면, client 에서 테스트를 해보자.
$ rsync -avz --progress --delete --exclude 'file_backup.sh' /home/Service/source/ 127.0.0.1::test
위 명령어 중 avz 는
a = archive 모드로 심볼링크, 퍼미션, 소유권 등을 보존
v = 진행상황을 상세히 보여줌
z = 전송 시 압축하여 전송
progress 는 진행상태를 보여주라는 뜻
delete 는 송신측과 수신측을 동일하게 유지 하기 위해 송신측에 없는 정보는 지우라는 명령어
누적 전송을 위해서는 delete 는 빼준다
exclude 는 전송 을 제외하고자 하는 폴더 또는 파일이다.
SSH 를 통해 전송하고자 하는 경우
$ rsync -avz --progress --delete --exclude 'file_backup.sh' /home/Service/source/ 127.0.0.1:/home/Service/backup
과 같이 맨 뒷부분을 수정해 준다.
끝.
혹시나 open failed : permission denied 과 같은 에러가 발생하면
selinux 쪽을 확인해 보자.
윈도우용으로도 cwrsync 라는 프로그램도 있으나, 현재 해당 프로그램이 유료화 된 상태인지라...
저작권이 두려워 차마 업로드는 못하고.......관심있으신 분은 댓글로 달아주세요