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

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

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

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

我在Linux上的价值.

解决方法

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

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

相关文章

查找全部容器的日志文件 $ sudo find /var/lib/docker/conta...
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型