On Fri, 28 Mar 2008 19:04:27 -0400
Erik Jan Tromp wrote:

> Just tripped over this one today.
>
> $ rsync --no-motd rsync://alphageek.dyndns.org/slackware
> rsync: link_stat "." (in slackware) failed: No such file or directory (2)
> rsync error: some files could not be transferred (code 23) at main.c(1498) [receiver=3.0.1pre2]
>
> $ rsync --no-motd rsync://alphageek.dyndns.org/slackware/slackware-current
> drwxr-xr-x 4096 2008/03/26 01:30:27 slackware-current


I've done some experimenting locally & narrowed things down. In essense,
I'm tripping over subtle changes in daemon exclude behaviour. The
following is a rundown of what I have & how I worked around the changes.

rsyncd.conf snippets (old, gives the previously mentioned error):

[slackware]
comment = Slackware mirror (trees only: use [slackware-iso] for isos)
lock file = /var/lock/rsyncd.slackware.lock
max connections = 2
path = /path/to/slackware
exclude = /.* /slackware-*-iso

[slackware-iso]
comment = Slackware mirror (isos only: use [slackware] for trees)
lock file = /var/lock/rsyncd.slackware-iso.lock
max connections = 2
path = /path/to/slackware
exclude = /.* /slackware-*.? /slackware-current

layout in /path/to/slackware/ (dirs suffixed with '/' to differentiate
them from regular files):

slackware-8.1/
slackware-8.1-iso/
slackware-9.0/
slackware-9.0-iso/
slackware-9.1/
slackware-9.1-iso/
slackware-10.0/
slackware-10.0-iso/
slackware-10.1/
slackware-10.1-iso/
slackware-10.2/
slackware-10.2-iso/
slackware-11.0/
slackware-11.0-iso/
slackware-12.0/
slackware-12.0-iso/
slackware-current/
..hidden/ (not its real name. development stuff)
..*.?????? (--temp-dir points here for pulling updates)

The workaround is almost anticlimactic. All it took was to change each
module's '/.*' exclude to '/.?*'.

While experimenting, I found another module with the same problem.

rsyncd.conf snippet (old, gives the previously mentioned error):

[sligdo]
comment = Slackware via Jigdo
path = /path/to/sligdo
exclude = index.shtml */*/ *.meta

layout in /path/to/sligdo/ (dirs suffixed with '/' to differentiate them
from regular files):

slackware-8.1/
slackware-8.1/0000-00-00/
slackware-9.0/
slackware-9.0/0000-00-00/
slackware-9.1/
slackware-9.1/0000-00-00/
slackware-10.0/
slackware-10.0/0000-00-00/
slackware-10.1/
slackware-10.1/0000-00-00/
slackware-10.2/
slackware-10.2/2005-09-13/
slackware-11.0/
slackware-11.0/2006-10-02/
slackware-12.0/
slackware-12.0/2007-07-02/
index.shtml
jigdo-file
slackware-mirrors.jigdo
sligdo
sligdo-create

Each of the slackware-$VERSION/ & slackware-$VERSION/YYYY-MM-DD/
directories contain one or more file triplets named

slackware-$VERSION-$ISONAME.jigdo
slackware-$VERSION-$ISONAME.meta
slackware-$VERSION-$ISONAME.template

where I want only the slackware-$VERSION/ .jigdo/.template pairs &
most of the toplevel regular files available for public access. What I
don't want available are the slackware-$VERSION/YYYY-MM-DD/ dirs &
contents as well as the toplevel index.shtml.

Working around this was't quite as elegant. I needed to change the
'*/*/' exclude to '*/??*/'.

Erik

--
"Failure is not an option. (It comes bundled with Windows.)"
"If at first you don't succeed, redefine success."

--
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html