Rsync 并确保在应用更改之前已传输所有文件

Tre*_*res 5 linux rsync

我想知道是否有办法告诉 rsync 仅在文件列表中的所有文件传输成功时才应用更改(删除、覆盖、创建)。

只是为了澄清,这本质上是围绕转移进行交易。

aki*_*ira 3

您可以使用具有快照功能的文件系统(btrfs、zfs):

  • 快照您当前的状态
  • 同步
  • 检查 rsync 的退出代码并根据需要回滚

您还可以注册自己的快照:

  • 复制文件(这将成为工作区域)
  • rsync到工作区
  • 检查 rsync 的退出代码,如果退出代码正常,则将工作区域移到原始文件上。