微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

rsync with inplace 删除目录

如何解决rsync with inplace 删除目录

我在 2 个系统之间连续执行 rsync,由于已知原因,tcp 连接中断。 在极少数情况下,整个 rsync 目标目录会被删除,数据会同步到其他位置。

使用的 rsync 选项是“-rpt -iP --stats --inplace”,我读到了有关 --inplace 与中断连接不一致的信息。

-rpt -iP --stats --inplace >> 失败

需要帮助想出最安全的方法,以避免在频繁连接中断的环境中出现 rsync 不一致

解决方法

如果您需要以一致的方式同步整个目录,请使用:

Array
(
    [0] => 1/0/10.txt
    [1] => 1/2/3/4/1234.txt
    [2] => 1/4/4/144.txt
    [3] => 2/2.txt
    [4] => 1/0/1/101.txt
    [5] => 2/3/1/231.txt
    [6] => 2/1/3/213.txt
)

Linux manrsync -avz \ --partial \ --partial-dir=.rsync-partial/ \ --delay-updates \ --delete \ --stats \ ...

这有几个影响:(1) 使用中的二进制文件无法更新(操作系统会阻止这种情况发生,或者尝试换入数据的二进制文件将行为异常或崩溃),(2) 文件的数据传输过程中将处于不一致状态,(3) 如果传输中断或更新失败,文件数据可能在传输后处于不一致状态

因此,--inplace 不能用于一致同步。而是使用 delay-updates 算法来保证只有在成功完成传输后才会隐含目标目录更改。

您也可以决定使用 --inplace 而不是 -a-rpt 参数等效于 -a,这是为一致同步设置的完整参数。 -rlptgoD 参数可用于传输时的详细输出和压缩(减少流量)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。