Rsync 备份某些文件失败,出现错误 22

Rsync 备份某些文件失败,出现错误 22

我正在尝试使用 '/nas' 上 NFS 挂载卷上的简单 rsync 备份我的整个服务器

这是我的 rsync 命令

rsync -sav -S --stats -H --numeric-ids --delete -D 
--exclude-from="/usr/local/bin/rsync_nas1_exclude" / /nas1/

出现以下错误:

rsync: chown "/nas1/home/8003/.local/share/icons/application-x-wine-extension-its.png" 
failed: Invalid argument (22)

或者

rsync: chown "/nas1/home/8003/.local/share/applications/wine/Programs/FxPro - Trader"     failed: Invalid argument (22)

知道为什么吗?我使用 '-s' 参数来保护文件名

答案1

错误出现在 上chown。我的猜测是:您的目标 NFS 挂载是不支持 的 FAT32 或 NTFS 卷chown。您有两个选择:使用 Linux 文件系统(如 ext3)对其进行格式化,或者完全放弃权限和所有者(--no-owner --no-grouprsync 选项)。

答案2

我很长时间以来一直遇到同样的问题,但看不到解决方案。问题似乎是 NFS 不允许你将文件的 UID/GID 更改为服务器上不存在的 UID/GID:

# for a local file, it works fine:
rena@akira:~ $ sudo chown -v 999:999 testfile 
changed ownership of `testfile' to 999:999

# but if the file is on an NFS share, it fails:
rena@akira:/mnt/yuki $ sudo chown -v 999:999 testfile
chown: changing ownership of `testfile': Invalid argument
failed to change ownership of `testfile' to 999:999

这似乎是 NFS 的一个设计缺陷;您无法使用它来备份服务器上不存在的人拥有的文件。但也许有办法禁用此检查?

答案3

就我而言,问题出在 NFS 版本上。使用 NFSv4 时,不允许使用服务器端不存在的 uid/gid,而 NFSv3(只要使用 导出no_root_squash)则不介意。因此,在我添加vers=3到 rsync 中的挂载选项后/etc/fstab,就可以正常 chown 了。

相关内容