ssh(scp)を使ってセキュリティーを考えてるぜー、という人でも、 webの更新なんかはftp、という人、結構いるんじゃないでしょうか。 それではせっかくのsshも意味がありません。 しかし確かにscpでひとつひとつ転送したりするのは苦痛です… さらにどのファイルをいつ更新したかどうかを考えなきゃならない日には目もあてられません。 そんなあなたにrsyncを紹介します。
わりと書かれてないことですが、転送先にssh(-e rshとすればrsh)で入れて、
% 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
とすると転送されます。実際には転送しないで、なにが転送されるかみたい場合には
% rsync -auvzb ~/public_html/ www.remote.hoge:~/public_html/
などと--dry-runをつけるとよいでしょう。
% rsync -auvzb --dry-run ~/public_html/ www.remote.hoge:~/public_html/
などとすると、rsyncの本家からrsyncのftp配布(の一部)をmirrorしてきます。
% rsync -auvzb --partial --exclude=binaries --exclude=old-versions \ rsync.samba.org::rsyncftp ~ftp/pub/rsync