大家好 - 我正在使用 rsync 从我的 Mac 备份到运行 Linux 的文件服务器,然后看到以下错误:
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]
...错误足够明显,但是 -v 显示两台机器的情况如下:
MAC(客户端/本地):
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(服务器/远程):
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
...那么既然 Linux 机器说它支持 xattrs,为什么它会对 Mac 请求的扩展属性提出投诉呢?
仅供参考,Mac 运行的是 OS X 10.6.1,服务器运行的是 Ubuntu 2.6.28-15-generic - 两台机器都运行最新的标准软件包(除了默认安装的软件包外,两边都没有安装特殊版本的 rsync)。
任何见解均值得赞赏:-)
答案1
标志 -E / --extended-attributes 不是官方 rsync 发行版的一部分,并且是 Apple 在官方 rsync 版本不支持它们时附带的一个补丁。
现在,rsync 3.x 版以与 Apple 补丁不兼容的方式重新实现了扩展属性支持。根据rsync 3.0.6 手册页,扩展属性支持现在通过 --xattrs 或 -X 参数实现。它似乎根本不接受 --extended-attributes 标志。
您要么不必指定 -E,要么在本地安装支持新实现的 rsync 更新版本。