차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:rsync [2021/01/17 16:27] 203.234.103.187tech:rsync [2023/09/08 00:13] (현재) 172.70.233.156
줄 1: 줄 1:
 {{tag>tech linux ubuntu rsync}} {{tag>tech linux ubuntu rsync}}
 ======rsync====== ======rsync======
 +Remote Sync의 줄임말로 여러가지 옵션을 이용해 원격 또는 로컬에 파일을 복사하는 툴임.
  
 호스트간의 데이터 동기화를 위한 rsync 설정 호스트간의 데이터 동기화를 위한 rsync 설정
줄 7: 줄 8:
 man page - rsync(1), rsyncd.conf(5) man page - rsync(1), rsyncd.conf(5)
  
-0. 들어가며 
 서버 클러스터링으로 여러대의 서버를 운영하는 경우 각 호스트간의 자료 서버 클러스터링으로 여러대의 서버를 운영하는 경우 각 호스트간의 자료
 를 공유해야함. 공유기법에는 NFS도 있지만 NFS의 경우는 네트웍 트래 를 공유해야함. 공유기법에는 NFS도 있지만 NFS의 경우는 네트웍 트래
줄 14: 줄 14:
 함. 함.
  
-===== rsync란 무엇인가?===== 
 rsync는 rcp와 비슷한 동작을 하는 프로그램으로 rsync는 rcp와 비슷한 동작을 하는 프로그램으로
  
줄 22: 줄 21:
   * root 권한이 필요없음   * root 권한이 필요없음
   * anonymous 또는 인증 rsync 서버 지원(미러링에 유용함)   * anonymous 또는 인증 rsync 서버 지원(미러링에 유용함)
 +  * 일반적인 배포판의 경우 이미 프로그램이 포함되어 있음.
 +=====옵션=====
  
-===== rsync 설===== +<file> 
-  인 배포판의 경우 프로그이 들어있음.+  -v: verbosity를 높이는 옵션으로 복사하는 과을 더 자세하게 보여준다. 
 +  -z: compress를 주는 옵션으로 파을 복사할 때 압축해서 복사함. 
 +  -h: 사람이 읽기 쉬운 형태로 복사 결과들을 출력해준다. 
 +  -a (same as -rlptgoD): archive 모드로 -rlptgoD 옵션을 용한것과 같다.  
 +  -r: 디렉토리를 복사할 때 사용하는 옵션임. 
 +  -l: symlink는 symlink 형태로 복사  
 +  -p: 파일과 디렉토리들의 권한을 유지  
 +  -t: 수정시간을 유지  
 +  -g: 룹 속성을 유지  
 +  -o: 소유자 속성을 유지  
 +  -D (same as --devices --specials): --devices --specials)의 옵션과 같다. 
 +  --devices: root 권한이 필요하며 Device 관련된 파일을 복사해서 생성해준다. 
 +  --specials: named socket이나 fifo와 같은 특수한 파일들도 복사한다. 
 +</file>
  
-===== 설정파일 /etc/rsyncd.conf=====+===== 설정파일 ===== 
 + 
 + /etc/rsyncd.conf
 예제를 보겠다. 다음 예제의 호스트를 www1이라고 하겠다. 예제를 보겠다. 다음 예제의 호스트를 www1이라고 하겠다.
  
   cat /etc/rsyncd.conf   cat /etc/rsyncd.conf
 +<file>
  
 [web] [web]
줄 38: 줄 55:
 use chroot = yes use chroot = yes
 read only = yes read only = yes
-hosts allow = www2.taejun.pe.kr+hosts allow = www.example.com
 max connections = 3 max connections = 3
 timeout 600 timeout 600
 +</file>
  
-[web] 서비스명 +  * [web] 서비스명 
-path 서비스할 디렉토리  +  path 서비스할 디렉토리  
-comment 설명  +  comment 설명  
-uid 파일전송하는 사용자의 id. 기본값은 nobody +  uid 파일전송하는 사용자의 id. 기본값은 nobody 
-gid 파일전송하는 사용자의 그룹 id. 기본값은 nobody +  gid 파일전송하는 사용자의 그룹 id. 기본값은 nobody 
-use chroot 위의 path를 root 디렉토리로 사용. 보안상 필요함. +  use chroot 위의 path를 root 디렉토리로 사용. 보안상 필요함. 
-read only 읽기전용 +  read only 읽기전용 
-hosts allow 호스트별 접속허용. 기본값은 all host이므로 보안을 유지하 +  hosts allow 호스트별 접속허용. 기본값은 all host이므로 보안을 유지하려면 반드시 설정함 
-려면 반드시 설정함 +  max connections 동시접속자수 
-max connections 동시접속자수 +  timeout 클라이언트에서 접근시 타임아웃시간. anonymous 로 운영하는 경우 설정을 해야 클라이언트가 죽었을 때 서버에서 접속을 해체할 수 있음.
-timeout 클라이언트에서 접근시 타임아웃시간. anonymous 로 운영하는 경 +
-우 설정을 해야 클라이언트가 죽었을 때 서버에서 접속을 해체할 수 있음.+
  
   * put(클라이언트에서 서버로 올리는 경우)을 사용하기위해서는 read only = no 로 설정을 해야된다.   * put(클라이언트에서 서버로 올리는 경우)을 사용하기위해서는 read only = no 로 설정을 해야된다.
줄 62: 줄 78:
 ssh를 사용하면 된다. ssh를 사용하면 된다.
  
-4. rsync 사용하기 +===== rsync 사용하기=====
-(접근 클라이언트를 www2.taejun.pe.kr이라고 가정함)+
  
   rsync -avz --delete www1.taejun.pe.kr::web /home/taejun/~public_html   rsync -avz --delete www1.taejun.pe.kr::web /home/taejun/~public_html
줄 76: 줄 91:
 일을 보관하려면 옵션 없앰. 일을 보관하려면 옵션 없앰.
  
-rsync -avz foo:src/bar /data/tmp+  rsync -avz foo:src/bar /data/tmp 
 다음 내용은 foo라는 호스트에서 src/bar 안의 내용을 지역호스트의 /data 다음 내용은 foo라는 호스트에서 src/bar 안의 내용을 지역호스트의 /data
 /tmp 디렉토리로 옮기는 것임. /tmp 디렉토리로 옮기는 것임.
줄 83: 줄 99:
 만약 위에서 src/bar/ 라고 하면 어떻게 달라질까? bar 는 그 디렉토리  만약 위에서 src/bar/ 라고 하면 어떻게 달라질까? bar 는 그 디렉토리 
 자체까지 포함해서 가져온다. 그렇지만 bar/ 라고 뒤에 디렉토리 표시를  자체까지 포함해서 가져온다. 그렇지만 bar/ 라고 뒤에 디렉토리 표시를 
-하면 그 디렉토리안에 있는 내용만 가지고 온다. 상당히 결과가 달라질  +하면 그 디렉토리안에 있는 내용만 가지고 온다. 상당히 결과가 달라진다.
-수 있겠지요.+
  
 또한 : 과 ::의 차이는 무엇일까? : 은 rsh나 ssh를 사용하는 것이며 ::  또한 : 과 ::의 차이는 무엇일까? : 은 rsh나 ssh를 사용하는 것이며 :: 
줄 112: 줄 127:
  g 그룹이름 변경  g 그룹이름 변경
 </code> </code>
-일반적으로 rsync는 길이와 time-stamp를 이용 파일을 비교함.+일반적으로 rsync는 파일의 길이와 시간 (time-stamp를 이용 파일을 비교함.
  
 이제 쉘 스크립트를 만들고 cron에 등록을 하여 주기적으로 데이터를 동기 이제 쉘 스크립트를 만들고 cron에 등록을 하여 주기적으로 데이터를 동기
줄 122: 줄 137:
  
 http://coffeenix.net/board_view.php?bd_code=88 http://coffeenix.net/board_view.php?bd_code=88
- 
- 
-^  수정할 수 있다. 관심있는 분들의 많은 참여 부탁줌. 문법은 [[wiki:syntax]]참조해라. | 
- 
-  * 출처: [[|]]