Synchronization rsync操作在文件级是原子的吗?

Synchronization rsync操作在文件级是原子的吗?,synchronization,atomic,rsync,Synchronization,Atomic,Rsync,我想弄清楚rsyncing文件是否是原子的。我找不到任何关于它的确认。由于rsync只能发送delta,我觉得它也只能更新部分实时文件 另一方面,DJB推荐rsync来同步live.cdb文件,我发现了这篇文章(),这两篇文章都暗示新文件已经创建,然后移到了正确的位置 有人能告诉我一个官方来源,确认其中一个吗?有一个perl脚本应该添加此功能: 问题是我试图测试它,但它不起作用。还有一个问题,因为从URL上看,它似乎与rsync4.0有关,而rsync的当前版本是2.6.9 Rsync创建一个

我想弄清楚rsyncing文件是否是原子的。我找不到任何关于它的确认。由于rsync只能发送delta,我觉得它也只能更新部分实时文件

另一方面,DJB推荐rsync来同步live
.cdb
文件,我发现了这篇文章(),这两篇文章都暗示新文件已经创建,然后移到了正确的位置


有人能告诉我一个官方来源,确认其中一个吗?

有一个perl脚本应该添加此功能:


问题是我试图测试它,但它不起作用。还有一个问题,因为从URL上看,它似乎与rsync4.0有关,而rsync的当前版本是2.6.9

Rsync创建一个新的临时文件,其中将包含来自本地(接收)副本的块以及它需要来自发送副本的任何块。完成后,将临时文件移动到位,替换原始文件

详细信息在这里


rsync
不会自动写入文件

传输过程中,将在同一目标目录(
[原始文件名].[6个随机字符]
)中创建一个隐藏的临时文件,该目录包含当前状态下传输的文件


如果您在传输过程中碰巧丢失了连接,或者
rsync
遇到任何其他问题,导致连接关闭,在终止
rsync
进程之前,请确保复制临时文件,以便保留所有已传输的包。您只需重命名临时文件(删除前导“.”和尾随“.xxxxxx”即可获得原始文件名)。

您没有回答实际问题。–这是否意味着每个单独文件的更新都是原子的?如果你认为同一个目录内的文件移动操作是原子的,那么“考虑”吗?原子与非原子应该是事实,而不是观点,我认为您的意思是说,在某些情况下,目录(本地磁盘上)中的文件重命名不是原子的吗?如果是的话,什么时候会发生?@zrajm:是的,这要视情况而定,甚至在这里也可以看到更基本的答案:是和否: