我从 rsync 中收到一个令人困惑的错误,并且我从网络搜索中发现的最初内容(以及所有常见的 chmod'ing)并没有解决它:

rsync: failed to set times on "/foo/bar": Operation not permitted (1)
rsync error: some files could not be transferred (code 23) 
  at /SourceCache/rsync/rsync-35.2/rsync/main.c(992) [sender=2.6.9]

尽管有这个错误,它似乎仍在工作,但最好摆脱它。

有帮助吗?

解决方案

如果/foo/bar是在NFS(或可能地一些FUSE文件系统),这可能是问题所在。

无论采用哪种方式,加入-O / --omit-dir-times到命令行会避免它试图上的目录设置的修改时间。

其他提示

该问题可能是由于 /foo/bar 不属于远程 darwin (OS X) 系统上的写入进程所致。该问题的解决方案是在远程站点上设置足够的所有者。

由于这个答案已经被投票,因此希望对某人有用,我正在扩展它以使其更清晰。

发生这种情况的原因是 rsync 可能在复制文件时尝试设置任意修改时间(mtime)。

为了做到这一点,darwin 的系统 utime() 函数要求写入进程的有效 uid 要么与文件 uid 相同,要么与超级用户的 uid 相同,请参见 opengroup utime 的页面。查看 这次讨论 在 rsync 邮件列表上作为参考。

在我的情况下的问题是,“接收器挂载点”被错误地安装。这是在只读模式(对于一些交流中心的原因)。 它看起来像rsync的被复制的文件,但事实并非如此。 我检查了我的fstab文件,并更改安装选项为默认值,重新挂载文件系统,然后再执行rsync的。所有细然后

我有同样的问题。对我来说,解决办法是删除远程文件,并让rsync重新创建。

当我在写一个文件系统,它不(正确)处理的时候,我已经看到了这个问题 - 我认为SMB共享或FAT或东西。

什么是你的目标文件系统?

这可能是因为你没有特权的一些文件。从管理员帐户,尝试“须藤rsync的-av”或者,启用root帐号并登录为root用户。这应该让你完全软管您的系统和蛮力您的rsync的! ;-)我不知道如果上述--extended的属性会有所帮助,但我把它太,只是为了好措施。

这发生在我上型xfs (rw,relatime,seclabel,attr2,inode64,noquota)的分区,其中,其中由另一个用户组中的所有的目录我们的成员。该组成员身份登录前就已经建立,整个目录结构是组可写的。我已经手动运行sudo chown -R otheruser.group directorysudo chmod -R g+rw directory证实这一点。

我仍然不知道为什么它最初没有工作,但正与sudo chown -R myuser.group directory固定它的所有权。也许SELinux的相关?

这个错误也可能会弹出,如果你运行rsync的过程没有被最近修改的源或目标...因为它不能设置时间最近修改的文件的文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top