2009-12-05

rsync daemon は module 以下の path も受け付けてくれる

まずは man より

 Access via rsync daemon: Pull: rsync
[OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST] Push: rsync
[OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

rsync は –daemon オプション付きで起動することで daemon として listen することができる。そこに直接接続するには src なり dest の URI を rsync:// で書けばよいのだけれど、この

rsync://[USER@]HOST[:PORT]/[SRC|DEST]

の SRC なり DEST の部分は

rsyncd.conf

[module]
   path = /path/to/module

と指定した path 以下にしかアクセスできないようになっている。つまりここでシステムのパスへの無制限のアクセスはできないように制限されている。

で、今まで実は module でフルパスを指定するだけで事足りていたので気にしたことなかったんだけど、

rsync src rsync://host/module/path/to/dest

みたいにも書けるということを知った。これであるホストのある特定のパス以下の任意のディレクトリについて rsync プロトコルで同期を取ることが可能なわけだ。なるほどなー。

About

例によって個人のなんちゃらです