我定期、频繁地从一组 QNAP 系统备份到中央备份存储库。备份rsync
结束ssh
,从中央服务器拉出。 QNAP 文件系统是ext4
,通过 Samba 共享给我的用户。 (QNAP 基于 Linux,我相当有信心,就这个问题而言,您可以这样对待它们。)备份服务器上的文件系统还处理扩展属性。
最近我从其中之一那里得到了这个致命错误
[sender] could not find xattr #1 for long_filename.xlsm
rsync error: protocol incompatibility (code 2) at xattrs.c(622) [sender=3.1.2]
rsync: [generator] write error: Broken pipe (32)
该rsync
命令是由它驱动的rsnapshot
,但归结为这个
rsync -avzSAXiv --delete --numeric-ids --fake-super --fuzzy --delete-after --partial --link-dest=/path/to/previous user@remoteHost:/share/ /path/to/backup/
源文件的扩展属性
getfattr -d -m - long_filename.xlsm
# file: long_filename.xlsm
security.NTACL=0sAwADAA..........AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAASAZAAAAIAAAAAAAAAAnAAAAAEFAAAAAAAFFQAAABSYSwXsMclxQXR48kIFAAABBQAAAAAABR....................IBAgAAAgAc..........QA/wEfAAEBAAAAAAABAAAAAA==
user.DOSATTRIB=0sMH..............EQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKZ........YBAAAAAAAAAAA=
user.qtier="io_aware"
这是什么xattr #1
?它指的是远程服务器上还是本地目标上的扩展属性?我可能会寻找什么来找出问题?目标文件不存在,因为那里rsync
崩溃了,但大约 87000 个其他文件已成功传输。源文件似乎没有什么特别之处。
我目前正在尝试构建一个 MRE,但在找到该security.NTACL
属性之前,我一直失败(默认情况下getfattr
仅显示user.*
属性)。
谢谢
答案1
我遇到了同样的问题(使用 rsync 3.1.3):
[sender] could not find xattr #1 for ...
rsync error: protocol incompatibility (code 2) at xattrs.c(750) [sender=3.1.3]
升级到当前的 rsync 版本(3.2.3)似乎可以解决该问题,但是,另一个明显与所使用的文件系统(HFS+)相关的问题出现了。