rsyncを使おう

印刷用

ssh(scp)を使ってセキュリティーを考えてるぜー、という人でも、 webの更新なんかはftp、という人、結構いるんじゃないでしょうか。 それではせっかくのsshも意味がありません。 しかし確かにscpでひとつひとつ転送したりするのは苦痛です… さらにどのファイルをいつ更新したかどうかを考えなきゃならない日には目もあてられません。 そんなあなたにrsyncを紹介します。


まずインストール

rsyncのページにいってtar ballをおとしてきます。その後、

% tar xvzf /some/where/rsync-2.4.1.tar.gz
% cd rsync-2.4.1
% ./configure
% vi rsync.h ←ここで#define RSYNC_RSH "rsh"を→"ssh"にする
% make
% su ←別にinstallしなくても使えるからしなくてもいい
# make install

わりと書かれてないことですが、転送先にssh(-e rshとすればrsh)で入れて、
rsyncがインストールされていなければなりません。

使ってみる

とにもかくにも使ってみましょう。
~/public_html にローカルで編集したHTMLのツリーが、
www.remote.hoge にwebサーバがたっており、
remoteでも~/public_htmlが公開しているディレクトリだとしますと、

% rsync -auvzb ~/public_html/ www.remote.hoge:~/public_html/

とすると転送されます。実際には転送しないで、なにが転送されるかみたい場合には

% rsync -auvzb --dry-run ~/public_html/ www.remote.hoge:~/public_html/

などと--dry-runをつけるとよいでしょう。

mirrorに使ってみる

rsyncはdaemon mode(以下rsyncd)で動くことができます。rsyncdの動かし方は後まわしにして…
既にanonymous rsyncdでserviceを行なってるところがあったら、
そこからのfile取得にrsyncを使ってみましょう。

% rsync -auvzb --partial --exclude=binaries --exclude=old-versions \
 rsync.samba.org::rsyncftp ~ftp/pub/rsync

などとすると、rsyncの本家からrsyncのftp配布(の一部)をmirrorしてきます。
::と:が2つなのは間違いではありません。
--excludeでやってるのは、binaries/、old-versions/をとってこない、という意味です。
--partialというのはなんらかの原因で転送がきれても途中まで転送したfileを残すという意味です。
ほかにもいろいろな使い方ができます。ぜひmanualを読んでみてください。
(C)Copyright 1999, 2000 by Sian <sian@big.or.jp>
Last modified: Thu Feb 26 23:04:27 JST 2004