OS : centos 6.6
rsync 사용을 위하여 설치여부 검사
서버쪽 검사 사항
[root@server ~]# rpm -qa | grep xinetd
xinetd-2.3.14-39.el6_4.x86_64
[root@server ~]# rpm -qa | grep rsync
rsync-3.0.6-12.el6.x86_64
만일 둘 중 하나라도 설치가 되어 있지 않다면 yum 을 통하여 설치합니다.
[root@server ~]# yum install -y xinetd
[root@server ~]# yum install -y rsync
클라이언트쪽 검사 사항
[root@client ~]# rpm -qa | grep rsync
rsync-3.0.6-12.el6.x86_64
클라이언트는 rsync만 설치되어 있으면 됩니다.
이제부터 환경설정에 들어가도록 하겠습니다.
환경설정은 서버 -> 클라이언트 순으로 진행됩니다.
* 서버 쪽 환경설정
[root@server ~]# vi /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = yes # 좌측의 disable를 no로 변경해줍니다.
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
----------------------------------------------------------------------------------------------------------------------
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
:wq
이제 rsync.conf를 수정 할 예정입니다.
만일 rsync.conf가 없다면 당황하지 말고 만들어주시면 됩니다.
[root@server ~]# vi /etc/rsync.conf
[www] <- 연결될 예명
comment=www <- 코멘트(사용자가 알아볼 코멘트 입니다)
path=/home/user/www <- 동기화 할 폴더
host allow=192.168.0.20 <- 접근 허용 할 IP
uid=user <- 접근시의 사용자ID
gid=group <- 접근시의 사용자 그룹명
use chroot=yes <- 해당 폴더 Root 여부
read only=yes <- 읽기전용 여부
max connections=1 <- 최대 커넥션 수
timeout 600 <- timeout 시간
요기까지 하셨으면 xinetd를 재시작 해줍니다.
[root@server ~]# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
서버 설정은 여기서 끝납니다. 쉽죠?
* 클라이언트 쪽 실행
클라이언트 부분은 환경설정은 별도로 없습니다만..
바로 실행을 하면 됩니다. 단.. 단순 실행 시 접속 계정의 비밀번호를 물어보게 됩니다.
상당히 불편하죠..!!
실행은 아래와 같습니다.
[root@client ~]# rsync -avz 192.168.0.10::www /home/user
만일 오류가 난다면 아래와 같이 직접 명시를 해주시면 됩니다.
[root@client ~]# rsync -avz 192.168.0.10:/home/user/www /home/user
이걸 좀 더 편리하게 이용하기 위해 pwd를 패스 하도록 하겠습니다. 클라이언트에서 서버로 key를 보내야 합니다.
ssh-keygen 시 여러가지를 물어보는데 마구 엔터를 눌러주시면 됩니다.
아 실행하기 전 서버 root path에 .ssh 폴더가 생성되어 있어야만 합니다.
[root@client ~]# ssh-keygen -t dsa
[root@client ~]# cat ~/.ssh/id_dsa.pub | ssh root@192.168.0.10 "cat >> .ssh/authorized_keys"
이제 서버로 ssh 접속을 하시면 비밀번호 묻는것 없이 접속이 가능합니다.
[root@client ~]# ssh 192.168.0.10
Last login: Tue Sep 8 16:35:55 2015 from 192.168.0.20
요기까지 돼셨다면
제 개인 스크립트를 통해 log와 실시간(매 1분당) 동기화 작업을 하겠습니다.
[root@client ~]# mkdir /home/rsynclog
[root@client ~]# vi rsync.sh
#!/bin/bash
date=`date +%Y-%m-%d`
date_delete=`date --date "15 day ago" +%Y-%m-%d`
backup_dir="/home/rsynclog/"
rm -Rf ${backup_dir}${date_delete}
mkdir ${backup_dir}${date}
/usr/bin/rsync -avz --progress --delete --log-file=${backup_dir}${date}/rsync.log 192.168.0.10:/home/user/www /home/user/
:wq
[root@client ~]# chmod +x rsync.sh
[root@client ~]# crontab -e
*/1 * * * * su - root -c '/root/rsync.sh'
:wq
요기까지 설정하셨으면 매 1분마다 /home/rsynclog 폴더에 날짜별로 rsync.log 파일이 쌓일겁니다 :-)
rsync option
-a : 심볼릭 링크, 속성, 퍼미션, 소유권 등 보존
-v : 자세한 정보출력
-z : 전송시 압축
-r : 하위디렉토리포함
-e ssh : ssh를 이용한 rsync 동기화
--delete : 서버동기화후 원본에서 파일이 삭제되면 백업에서도 파일을 삭제
--stats : 결과출력
--log-file : 로그파일 저장
'Web' 카테고리의 다른 글
apache .htaccess config (0) | 2016.03.29 |
---|---|
Centos6 darkstat 설치 (0) | 2015.09.09 |
[2015.09.03] openstack with CentOS7 설치하기 (0) | 2015.09.03 |
pear 오류 (0) | 2015.02.28 |
Alteon L4 Switch 초기화 (0) | 2015.02.24 |