차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
tech:rsync [2016/07/12 00:56] – 바깥 편집 127.0.0.1 | tech:rsync [2023/09/07 15:13] (현재) – 172.70.233.156 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
- | {{tag> | + | {{tag> |
- | ======Rsync====== | + | ======rsync====== |
+ | Remote Sync의 줄임말로 여러가지 옵션을 이용해 원격 또는 로컬에 파일을 복사하는 툴임. | ||
호스트간의 데이터 동기화를 위한 rsync 설정 | 호스트간의 데이터 동기화를 위한 rsync 설정 | ||
- | + | ((레드햇 리눅스 6 서버 - 파워북 출판사, 번역판중 rdist 관련 자료)) | |
- | + | ||
- | 레드햇 리눅스 6 서버 - 파워북 출판사, 번역판중 rdist 관련 자료 | + | |
man page - rsync(1), rsyncd.conf(5) | man page - rsync(1), rsyncd.conf(5) | ||
- | |||
- | 0. 들어가며 | ||
서버 클러스터링으로 여러대의 서버를 운영하는 경우 각 호스트간의 자료 | 서버 클러스터링으로 여러대의 서버를 운영하는 경우 각 호스트간의 자료 | ||
- | 를 공유해야합니다. 공유기법에는 NFS도 있지만 NFS의 경우는 네트웍 트래 | + | 를 공유해야함. 공유기법에는 NFS도 있지만 NFS의 경우는 네트웍 트래 |
- | 픽을 무척이나 높이므로 그 대신 rdist나 rsync를 이용할 수 있습니다. 이 | + | 픽을 무척이나 높이므로 그 대신 rdist나 rsync를 이용할 수 있다. 이 |
글에서는 rsync를 이용하여 각 호스트간의 자료를 동기화하는 방법을 설명 | 글에서는 rsync를 이용하여 각 호스트간의 자료를 동기화하는 방법을 설명 | ||
- | 합니다. | + | 함. |
- | ===== rsync란 무엇인가? | + | rsync는 rcp와 비슷한 동작을 하는 프로그램으로 |
- | rsync는 rcp와 비슷한 동작을 하는 프로그램으로 | + | |
* 링크, device, 소유자, 그릅, 허가권 복사 지원 | * 링크, device, 소유자, 그릅, 허가권 복사 지원 | ||
줄 26: | 줄 21: | ||
* root 권한이 필요없음 | * root 권한이 필요없음 | ||
* anonymous 또는 인증 rsync 서버 지원(미러링에 유용함) | * anonymous 또는 인증 rsync 서버 지원(미러링에 유용함) | ||
+ | * 일반적인 배포판의 경우 이미 프로그램이 포함되어 있음. | ||
+ | =====옵션===== | ||
- | ===== rsync 설정===== | + | < |
- | | + | -v: verbosity를 높이는 옵션으로 복사하는 과정을 더 자세하게 보여준다. |
+ | | ||
+ | -h: 사람이 읽기 쉬운 형태로 복사 결과들을 출력해준다. | ||
+ | -a (same as -rlptgoD): archive 모드로 -rlptgoD 옵션을 | ||
+ | -r: 디렉토리를 복사할 때 사용하는 옵션임. | ||
+ | -l: symlink는 symlink 형태로 복사 | ||
+ | -p: 파일과 디렉토리들의 권한을 유지 | ||
+ | -t: 수정시간을 유지 | ||
+ | -g: 그룹 속성을 유지 | ||
+ | -o: 소유자 속성을 유지 | ||
+ | -D (same as --devices --specials): | ||
+ | --devices: root 권한이 필요하며 Device 관련된 파일들을 복사해서 생성해준다. | ||
+ | --specials: named socket이나 fifo와 같은 특수한 파일들도 복사한다. | ||
+ | </ | ||
- | ===== 설정파일 | + | ===== 설정파일 |
- | 예제를 보겠습니다. 다음 예제의 호스트를 www1이라고 하겠습니다. | + | |
+ | / | ||
+ | 예제를 보겠다. 다음 예제의 호스트를 www1이라고 하겠다. | ||
cat / | cat / | ||
+ | < | ||
[web] | [web] | ||
줄 42: | 줄 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 | ||
+ | </ | ||
- | [web] 서비스명 | + | * [web] 서비스명 |
- | path 서비스할 디렉토리 | + | |
- | comment 설명 | + | |
- | uid 파일전송하는 사용자의 id. 기본값은 nobody | + | |
- | gid 파일전송하는 사용자의 그룹 id. 기본값은 nobody | + | |
- | use chroot 위의 path를 root 디렉토리로 사용. 보안상 필요함. | + | |
- | read only 읽기전용 | + | |
- | hosts allow 호스트별 접속허용. 기본값은 all host이므로 보안을 유지하 | + | |
- | 려면 반드시 설정함 | + | |
- | max connections 동시접속자수 | + | |
- | timeout 클라이언트에서 접근시 타임아웃시간. anonymous 로 운영하는 경 | + | |
- | 우 설정을 해야 클라이언트가 죽었을 때 서버에서 접속을 해체할 수 있음. | + | |
- | * put(클라이언트에서 서버로 올리는 경우)을 사용하기위해서는 read only = no 로 설정을 해야됩니다. | + | * put(클라이언트에서 서버로 올리는 경우)을 사용하기위해서는 read only = no 로 설정을 해야된다. |
이 외에도 여러 가지 옵션이 있지만 실제로은 위의 옵션정도가 자주 사용 | 이 외에도 여러 가지 옵션이 있지만 실제로은 위의 옵션정도가 자주 사용 | ||
- | 됩니다. 현재 rsync 자체적으로 암호화는 지원하지 않으며 사용자 인증만 | + | 된다. 현재 rsync 자체적으로 암호화는 지원하지 않으며 사용자 인증만 |
- | 지원합니다. 추후에는 SSL을 지원할 예정이며, | + | 지원함. 추후에는 SSL을 지원할 예정이며, |
- | ssh를 사용하면 | + | ssh를 사용하면 |
- | + | ===== rsync 사용하기===== | |
- | 4. rsync 사용하기 | + | |
- | (접근 클라이언트를 www2.taejun.pe.kr이라고 가정함) | + | |
rsync -avz --delete www1.taejun.pe.kr:: | rsync -avz --delete www1.taejun.pe.kr:: | ||
줄 81: | 줄 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 디렉토리로 옮기는 것임. |
- | 여기서 알아두어야 할 것이 있습니다. | + | 여기서 알아두어야 할 것이 있다. |
- | 만약 위에서 src/bar/ 라고 하면 어떻게 달라질까요? bar 는 그 디렉토리 | + | 만약 위에서 src/bar/ 라고 하면 어떻게 달라질까? |
- | 자체까지 포함해서 가져옵니다. 그렇지만 bar/ 라고 뒤에 디렉토리 표시를 | + | 자체까지 포함해서 가져온다. 그렇지만 bar/ 라고 뒤에 디렉토리 표시를 |
- | 하면 그 디렉토리안에 있는 내용만 가지고 | + | 하면 그 디렉토리안에 있는 내용만 가지고 |
- | 수 있겠지요. | + | |
- | 또한 : 과 ::의 차이는 무엇일까요? : 은 rsh나 ssh를 사용하는 것이며 :: | + | 또한 : 과 ::의 차이는 무엇일까? |
은 rsync 자체에서 지원하는 기능을 이용 자료를 가져오는 것으로 873 TCP | 은 rsync 자체에서 지원하는 기능을 이용 자료를 가져오는 것으로 873 TCP | ||
- | 포트를 사용합니다. 상당히 헷갈리지요? | + | 포트를 사용함. 상당히 헷갈리지요? |
- | -e ssh 옵션을 이용하여 ssh를 사용할 수 있습니다. ssh를 사용하려면 비 | + | -e ssh 옵션을 이용하여 ssh를 사용할 수 있다. ssh를 사용하려면 비 |
밀번호를 입력해야하는데 이것도 파일형태로 만들어서 옵션에서 지정해주 | 밀번호를 입력해야하는데 이것도 파일형태로 만들어서 옵션에서 지정해주 | ||
- | 면 됩니다. 이에 대해서는 따로 설명하지는 않으며 man page를 참고하세 | + | 면 된다. 이에 대해서는 따로 설명하지는 않으며 man page를 참고하세 |
요. | 요. | ||
- | -avz 등의 옵션이 있는데 이중 중요한 옵션만 설명을 하겠습니다. | + | -avz 등의 옵션이 있는데 이중 중요한 옵션만 설명을 하겠다. |
< | < | ||
-v verbose (자세하게 보여줌) | -v verbose (자세하게 보여줌) | ||
- | -a archive mode | + | -a archive mode |
-u update only(새로운 파일을 덮어쓰지 않음) | -u update only(새로운 파일을 덮어쓰지 않음) | ||
줄 111: | 줄 120: | ||
--daemon 대몬 모드로 운영함 (이건 inetd.conf에 지정할 때 필요함) | --daemon 대몬 모드로 운영함 (이건 inetd.conf에 지정할 때 필요함) | ||
- | + | a 는 -rlptg 와 동일함. | |
- | a 는 -rlptg 와 동일합니다. | + | |
r recursive (하위 디렉토리까지 포함) | r recursive (하위 디렉토리까지 포함) | ||
l 심볼릭 링크 재생성 | l 심볼릭 링크 재생성 | ||
줄 119: | 줄 127: | ||
g 그룹이름 변경 | g 그룹이름 변경 | ||
</ | </ | ||
- | 일반적으로 rsync는 길이와 time-stamp를 이용 파일을 비교합니다. | + | 일반적으로 rsync는 |
이제 쉘 스크립트를 만들고 cron에 등록을 하여 주기적으로 데이터를 동기 | 이제 쉘 스크립트를 만들고 cron에 등록을 하여 주기적으로 데이터를 동기 | ||
- | 화하면 | + | 화하면 |
- | + | ||
rsync -r -t -v " | rsync -r -t -v " | ||
줄 131: | 줄 137: | ||
http:// | http:// | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ^ 수정하실 수 있습니다. 관심있는 분들의 많은 참여 부탁드립니다. 문법은 [[wiki: | ||
- | |||
- | * 출처: [[|]] | ||
- | |||