The one thing I can see is that perhaps part of what is being sync'ed
is on a read-only filesystem, while portions of the underlying tree
are not. For example, it is common to mount the root file system
read-only, while areas such as /var are read-write.
On the flip side, there is also the problem where the top portions of
a tree being rsync'ed would be in a read-write area, and areas under
it would potentially be in a read-only partition. I have seen this a
number of times, where developers would have multiple areas mounted
under their home directories onto a build server.
On the performance improvements... I am sure that there are some which
can be made... always is, always will be. About the best I can see in
this would be perhaps test and set/clear a flag every time one directory is
traversed. This likely could be done by looking at the st_dev member
of the stat structure, IIRC.
- Doug
Quoting smokin.jake@mac.com (smokin.jake@mac.com):> I think your product is awesome, but I am experiencing an unexpected
> behaviour.
>
> $ rsync -avviPH /Users/alan/Desktop/rsync_test\ Folder/
> root@slug::Downloads
>
> opening tcp connection to slug port 873
> sending daemon args: --server -vvlHogDtpre30.16i
"--log-format=%i" --
> partial . Downloads
> sending incremental file list
> .d..t..g... ./
> rsync: failed to write xattr user.rsync.%stat for "/." (in
> Downloads): Read-only file system (30)
> rsync: failed to set times on "/." (in Downloads): Read-only file
> system (30)
> <f.st..g... .DS_Store
> 6148 100% 4.76MB/s 0:00:00 (xfer#1, to-check=12/14)
> cd+++++++++ RSYNC_TEST/
> rsync: recv_generator: mkdir "/RSYNC_TEST" (in Downloads) failed:
> Read-only file system (30)
> *** Skipping any contents from this failed directory ***
> rsync: mkstemp "/..DS_Store.iiOfRf" (in Downloads) failed:
Read-only
> file system (30)
> total: matches=6 hash_hits=8 false_alarms=0 data=1948
>
> sent 2414 bytes received 144 bytes 1705.33 bytes/sec
> total size is 146404 speedup is 57.23
> rsync error: some files could not be transferred (code 23) at main.c
> (1058) [sender=3.0.0pre8]
>
> The destination file system is Read Only, but RSYNC takes the time
> and looks as if the transfer is happening, but of course it is not.
> I would like RSYNC to terminate as soon as it knows its destination
> is Read only.
>
> The transfer is from a Mac OSX to Debian Linux HFSPlus file system.
>
> OSX
> rsync version 3.0.0pre8 protocol version 30.PR16
> Capabilities:
> 64-bit files, 32-bit inums, 32-bit timestamps, 64-bit long ints,
> socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
> append, ACLs, xattrs, iconv, file-flags
>
> Linux
> rsync version 3.0.0pre8 protocol version 30.PR16
> Capabilities:
> 64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
> socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
> append, ACLs, xattrs, iconv
>
> Thanks
>
>
> --
> To unsubscribe or change options:
> https://lists.samba.org/mailman/listinfo/rsync
> Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html
--
Douglas Wade Needham - KA8ZRT UN*X Consultant & UW/BSD kernel
programmer
Email: cinnion @ ka8zrt . com http://www.ka8zrt.com
Disclaimer: My opinions are my own. Since I don't want them, why
should my employer, or anybody else for that matter!