On Fri, 28 Mar 2008 19:04:27 -0400
Erik Jan Tromp <betageek@sympatico.ca> 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."