我使用 TrueNAS 的 Rsync 作业将某些池备份到 Debian 服务器上。我通过客户端(本例中为 TrueNAS)和服务器上的 root 帐户通过 SSH 使用 rsync。运行的命令如下:
/usr/local/bin/rsync -a --delay-updates --delete-delay -X -p -r -t --exclude ‘clone-auto-*’ -M --log-file=/var/log/rsync/mypool.log -e ‘ssh -p 22 -o BatchMode=yes -o StrictHostKeyChecking=yes’ /mnt/Vol03/Subvol01/MyPool [email protected]:/mnt/backups
某些池中有数万个文件,但 rsync 作业无法成功完成,因为几十个文件会发出此错误:
rsync: get_xattr_names: llistxattr(“/some/old/file”,1024) failed: Invalid argument (22)
我的问题是:有人知道这个问题的根本原因吗?我似乎无法弄清楚为什么某些文件会出现此错误,而绝大多数文件不会出现此错误。
我最终能够通过删除
-X
选项并且不同步扩展属性来使其工作。从man
页面:奇怪的是,对于 99.9% 的文件,它工作正常并同步扩展属性,但只有某些文件会失败。正如我上面提到的,这可能与以下事实有关:那些失败的文件来自 Mac,而其他文件来自 Windows 计算机。但目前这只是一种理论。