3.0.0pre2 error on module, fine on subdir

Erik Jan Tromp betageek at sympatico.ca
Sat Mar 29 20:18:57 GMT 2008


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



More information about the rsync mailing list