rsync 排除空文件

Mic*_*ael 4 rsync

我最近发现卷上的一些文件被神秘地截断了 - 或者更准确地说,被零长度文件替换。

幸运的是,这些文件是从多个地方硬链接的,实际上只有大约一半的链接被一个看似相同属性的零长度文件覆盖。

但是,当我查看备份时,发现问题发生在我之前的备份之前。对于有问题的卷,一个简单的镜像备份就足够了,因为文件不应被删除——它主要是附加的。但由于该文件实际上并没有被删除,我不能简单地告诉rsync不要删除。

有没有办法告诉rsync不同步本地长度为零但远程长度非零的文件?

我当然可以简单地编写一些代码来查找零长度文件并排除它们,但这是一个额外的耗时步骤(现在对文件系统进行两次完整扫描)并且它可以排除合法应该同步的文件(在如果存在预期长度为零的文件)。

Ant*_*hon 5

rsync有一个--min-size选项:

 --min-size=SIZE         don't transfer any file smaller than SIZE
Run Code Online (Sandbox Code Playgroud)

如果目标端没有零字节大小的文件,除非您有必须传输的文件,否则这应该对您有所帮助。

AFAIK 无法告诉 rsync 根据源和目标大小采取特殊操作。