« Tip: generating a good password with Mac OS X | Main | Google Cookie authentication »

Is it just me or rsync is crazy?

Is it just me or rsync include/exclude patters are crazy??

I want a simple thing: specify in the server rsyncd.conf file that we only want to export 3 directories from a specific path.

After battling for 1 hour with this, I settled on this configuration file.

use chroot = yes
read only = yes
uid = nobody
gid = nobody

[files]
path = /my/files/
comment = my important files
filter = + /dir1 + dir1/** + /dir2 + dir2/** + /dir3 + dir3/** - *

Notice the pattern? for each directory, we include the directory itself with /dir and then we include all the files (and subdirectories recursively) with dir/**.

I understand why I have to write it this way. I read the fine manual to reach this configuration, but simple things should be simple, right? It would be nice to see something like this:

use chroot = yes
read only = yes
uid = nobody
gid = nobody

[files]
path = /my/files/
comment = my important files
filter = + /dir1** + /dir2** + /dir3** - *

By the way, before you ask. I also tried two lines, first include = /dir* followed by a exclude = *. It seemed logical to me, but it didn't work.

Anyway, it's working now with the first configuration, but I would like to see a simpler way.

Update: The Gods must be watching... In the latest rsync release, 2.6.7pre1, this is mentioned on the release notes:

  • The include/exclude code now allows a dir/*** directive (with 3 trailing stars) to match both the dir itself as well as all the content below the dir (dir/** would not match the dir).

Thank you!

Technorati Tags:

Contacts

melo@simplicidade.org (XMPP/email)
+351 302 029 050 (voice)
melopt (Skype)

IronMan challenge

Iron Man badge Are you ready to be an Iron Man? Join the challenge and find out! (what is the meaning of this little man?)

Moosaico

Junta-te!

Recent Comments

Powered by Disqus
Creative Commons License
This weblog is licensed under a Creative Commons License.
Powered by
Movable Type 3.2