linux – rsync目录所以所有更改都以原子方式显示

我为本地网络做了一些夜间和每周镜像常用的存储库.有些情况下,有人试图在rsync发生时进行更新并失败,因为预期的文件还不是全部.

是否可以执行rsync,以便所有更改的文件仅在完成时显示正确的名称?我知道rsync在每次传输过程中都使用临时的.hidden文件,但是我可以推迟重命名直到它以某种方式完成吗?

或者,似乎我可以使用–backup选项将所有更改移动到一个目录并在之后以原子方式移动它们,但我希望该功能与现在的功能相反.

我在Linux上的价值.

解决方法

您可以使用–link-dest =选项.基本上你会创建一个新文件夹,所有文件都与新文件硬链接.完成所有操作后,您只需交换文件夹名称并删除旧名称即可.

因为没有内核/ VFS支持,所以在Linux中不可能这样做100%原子.但是,交换名称实际上只有2个系统调用,所以它应该在不到1秒的时间内完成它.只有在Darwin(MAC / OSX)上才能在HFS文件系统上调用swapata系统.

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。