更新源时使用 rsync 安全吗?

更新源时使用 rsync 安全吗?

rsync当源文件系统已挂载且可写时,假设在 rsync 运行时很可能会对其进行修改,那么使用它是否安全?我认为在竞争条件下我可能无法获得最新的修改,但是是否存在损坏的风险?

答案1

rsync在读写安装的文件系统上使用相当安全。当rsync启动时,它会建立一个文件列表,然后开始复制这些文件。该文件列表在运行期间不会更新。然后复制实际数据。

这意味着当文件更改时 rsync已构建文件列表,它将复制新的内容。然而,当一个新文件添加rsync建立其文件列表后,不会复制该新文件。如果一个文件是已删除rsync构建文件列表后,rsync 将警告它无法复制该文件。请记住,这rsync不是快照,这意味着很难判断在哪个时间点rsync复制了数据。

另一方面,文件系统或卷管理器快照(例如使用 ZFS 或 LVM)是立即创建的,并且是文件系统在明确定义的时间点的一致快照,然后可以将其复制到另一台主机。rsync不提供这种一致性。

编辑:正如其他人在评论中指出的那样,有可能rsync实际上会损坏您的文件。当 rsync 开始读取文件并且应用程序同时写入该文件时,您可能会得到一个损坏的文件。

相关内容