使用 rsync 对某些具有 Apple 资源分支的文件进行同步时出现 lsetxattr 错误

使用 rsync 对某些具有 Apple 资源分支的文件进行同步时出现 lsetxattr 错误

我正在使用 rsync 将 MacOS 计算机备份到 Linux 服务器。有几个文件每次都会出错,我正在尝试找出如何处理它们。我希望不会出现这些错误,或者找到一种方法来记录警告,并且在发生这种情况时不会出错,因为备份的其余部分都没有问题。

我遇到了两种错误,但这两种错误都发生在 lsetattr 和具有资源分支的文件中。(我认为只有一些文件具有资源分支,而不是全部,而且我看到的那些文件看起来像是图像文件)。一个错误如下所示:

rsync:rsync_xal_set:lsetxattr(“/backup/Demo.boxer/Icon#015” “,”user.com.apple.ResourceFork”)失败:参数列表太长(7)

另一个是:

rsync:rsync_xal_set:lsetxattr(“/backup/photo/market.JPG” “,”user.com.apple.ResourceFork”)失败:设备上没有剩余空间(28)

这是完整的 rsync 命令(它是脚本文件的一部分):

rsync -ax --delete --delete-excluded --filter="merge rsync_filter.rules"\
          --numeric-ids --protect-args --xattrs -M--fake-super -e "ssh -i ${ssh_key}"\
          --rsync-path="${remote_user_script_root}/rsync_wrapper.sh ${backup_path} ${backup_time}" \
          --info=progress2 --stats\
          --relative / $remote_user@$remote_server:"${backup_dir}"

我在使用和不使用 --protect-args 标志的情况下都运行过它。如果我添加 -A (acls) 标志,一些文件会给出不同的错误,但大体上是相同的。

Mac(发送方)正在运行:rsync 版本 3.2.2 协议版本 31 远程服务器正在运行:rsync 版本 3.1.2 协议版本 31

更新远程服务器上的版本并非易事,但如果确实可以解决这个问题,就可以做到。

相关内容