rsync xattr oddness between mac & linux?
Hullo all - I'm using rsync to back up from my mac to a fileserver runnning linux, and I see the following error:
rsync -e ssh -vaxE --delete --ignore-errors 192.168.1.3:/bkup/mac/Users/dave/ /Users/dave/Desktop/dave
[email protected]'s password:
rsync: on remote machine: --extended-attributes: unknown option
rsync error: syntax or usage error (code 1) at main.c(1441) [server=3.0.5]
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-37.3/rsync/io.c(452) [receiver=2.6.9]
... clear enough error, however -v shows the following for the two machines:
MAC (Client/Local):
rsync version 2.6.9 protocol version 29
...
Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,
inplace, IPv6, 64-bit system inums, 64-bit internal inums
LINUX (Server/Remote):
rsync version 3.0.5 protocol version 30
...
Capabilities:
64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes
... so given the Linux box says it supports xattrs why does it throw a complaint about extended-attributes being requested by the Mac ?
FWIW the Mac is running OS X 10.6.1 & The server is running Ubuntu 2.6.28-15-generic - both machines are running with up to date standard packages (no special flavours of rsync installed on either side beyond what ships by default).
Any insight appreciated :-)
The flags -E / --extended-attributes were not part of the official rsync distribution, and were a patch included by Apple at a time when the official rsync release didn't support them.
Now, rsync verson 3.x has reimplemented extended attribute support in a manner incompatible with Apple's patch. According to the rsync manual page for 3.0.6, extended-attribute support is now done with the --xattrs or -X arguments. It does not appear to accept the --extended-attributes flag at all.
You will either have to not specify -E or install an updated version of rsync locally that supports the new implementation.