![Rsync 增量更新,跳过前 N 个块(或 %)](https://linux22.com/image/188934/Rsync%20%E5%A2%9E%E9%87%8F%E6%9B%B4%E6%96%B0%EF%BC%8C%E8%B7%B3%E8%BF%87%E5%89%8D%20N%20%E4%B8%AA%E5%9D%97%EF%BC%88%E6%88%96%20%25%EF%BC%89.png)
我有一堆非常大的“几乎仅附加”文件(意味着末尾的几个字节每天都会更改)。
我知道要-B, --block-size=BLOCKSIZE
检查块中的增量。
是否可以跳过前 N 个块(或从 99% 的块开始检查)?
答案1
您不能指定起始块号,但根据原文对于您的问题,如果您可以保证源文件只会被扩展而不会被覆盖,您可以使用该--append
选项。
从文档 ( man rsync
) 中,
--append
这种特殊的复制模式仅适用于有效更新已知不断增大的文件,其中接收方的任何现有内容也已知与发送方的内容相同。--append
如果您不能 100% 确定传输中的所有文件都是共享的、不断增长的文件,那么使用可能会很危险。因此,您应该使用过滤规则来确保清除任何不符合此条件的文件。
您必须使用rsync
不带--append
if "末尾的几个字节被改变如果您通过网络进行复制 ( rsync -a path/to/source remoteHost:path/to/destination
),那么每次运行时您都会获得源和目标的完整文件读取rsync
,但每个块只有一个校验和,并且已更改的块实际上将通过网络传输不幸的是,如果您正在进行本地复制 ( rsync -a path/to/source path/to/destination
),则如果文件大小发生变化,整个文件都会被复制。