使用 rsync 重新同步单个大文件

使用 rsync 重新同步单个大文件

我在 R1soft 服务器上创建了一个大型磁盘安全文件 (71GB)。我想将其副本保存到远程备份服务器,并在发生任何更改时(复制完成后)同步它。据我所知,rsync 是执行此操作的完美工具,因为它会在两端对整个文件运行校验和,比较文件小段的校验和,然后仅复制那些不匹配的块。

但是,根据我的测试,rsync 在比较校验和后会在远程备份服务器上复制整个文件。R1soft 复制中的增量更改每天只有不到 1 GB,为什么 rsync 会传输整个文件而不是将更改传输到远程备份服务器?

在 disksafe 目录中,只有一个 71GB 大小的 .db 文件。运行 rsync 时,它会在同一目录中生成另一个副本。rsync 完成后,原始文件将被更新,并且该目录中仅保留一个。

-rw-------. 1 root root 71G 十二月 10 17:38 b5c9b515-47f9-48a0-b6f6-062f13559dad.db

-rw-------. 1 root root 69G 十二月 15 12:35 .b5c9b515-47f9-48a0-b6f6-062f13559dad.db.tc9w7A

这是我使用的 rsync 命令:

rsync -avz --progress /disksafes/2abd4a9a-3a76-40fa-b034-afd29a49f3e3/ remote_server_ip:/disksafes/remote_backup/

答案1

使用--inplace

--inplace 参数指示 rsync不是先将新文件作为临时文件上传。

这可能是有风险的,因为网络问题//断开连接可能会使目标文件处于奇怪的状态。

相关内容