솔라리스 11.3 에는 rsync 3.1.1 을 제공해준다. /usr/bin 에 설치되어있다.
소스 설치
최신 버전을 사용하려면 아래와 같이 한다.
windy@wl ~/src # wget https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz
windy@wl ~/src # wget https://download.samba.org/pub/rsync/src/rsync-patches-3.1.3.tar.gz
windy@wl ~/src # tar xvfz rsync-3.1.3.tar.gz
windy@wl ~/src # tar xvfz rsync-patches-3.1.3.tar.gz
windy@wl ~/src # cd rsync-3.1.3
windy@wl ~/src/rsync-3.1.3 # ls -al patches 1)
...
windy@wl ~/src/rsync-3.1.3 # patch -p1 < patches/db.diff
windy@wl ~/src/rsync-3.1.3 # ./prepare-source
windy@wl ~/src/rsync-3.1.3 # ./configure CFLAGS="-m64" LDFLAGS="-m64"
...
rsync 3.1.3 configuration successful
...
windy@wl ~/src/rsync-3.1.3 # make
windy@wl ~/src/rsync-3.1.3 # sudo make install
windy@wl ~/src/rsync-3.1.3 # ./rsync --version
rsync version 3.1.3 protocol version 31
...
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes, no prealloc, db
...
1) 필요한 패치 파일을 적용한다. patch -p1 < patches/xxx.diff 명령을 사용하면 소스를 패치한 후, ./prepare-source를 사용해 소스빌드를 준비하면 된다. 이 작업은 ./configure전에 작업되어야 한다. 예제에서는 db패치를 적용했다.
기본 설정및 실행
wldev 서버의 /export/home/dev/wwwroot 의 내용을, wl 서버의 /export/home/webmast/wwwroot 와 동기화하는 예를 보인다.
wldev 서버
rsync 설정을 하고 rsync 데몬을 띄운다. rsync 데몬은 기본적으로 873 포트를 사용한다. rsyncd.conf 의 자세한 옵션은 rsyncd.conf(5)를 참조하자.
인터넷을 통해 데이터를 전송시키기 위해 암호화를 이용하는데 rsync 자체에서는 이를 지원하지 않는다. ssh 를 통해 이를 적용할 수 있다. 전송은 ssh가 하기 때문에 이 방법은 rsync 데몬을 사용하지 않는다.
사용 방법
일단 rsync 옵션에 [-e ssh]를 적어준다. cron 등에서 사용하기 위해서는 SSH가 [공개키에 의한 인증]을 사용해야 한다. 이는 윈디하나의 솔라나라: SSH의 [공개키에 의한 인증] 섹션에 설명되어있다.
rsync 프로토콜을 사용하는 것이 아니기 때문에 URL을 원격 서버 기준으로 바뀌어야 한다.
wl 서버
아래는 그 예제이다. wldev의 /usr/local/bin 에 rsync 가 있기 때문에 경로를 지정해준다. [rsync -avz rsync://windy@wldev/wldev_wwwroot /export/home/webmast/wwwroot] 명령과 동일한 기능을 수행한다. 명령어의 옵션은 rcp(1)처럼 생각하면 쉽다.
root@wl ~ # rsync -avz -e ssh --rsync-path /usr/local/bin/rsync wldev:/export/home/dev/wwwroot/ /export/home/webmast/wwwroot
암호: [ssh의 암호]
receiving incremental file list
./
test.php
sent 33 bytes received 108 bytes 40.29 bytes/sec
total size is 17 speedup is 0.12