如果多次运行,这个 rsync 命令是否会运行增量备份?

如果多次运行,这个 rsync 命令是否会运行增量备份?

我正在将文件备份到远程 webdav 共享。我使用 rsync,这样它至少是增量的。但是它的速度一点也不快,所以我怀疑我是否配置正确。

如果多次运行以下命令是否会进行增量备份?

# Backup
sudo rsync -av --delete --progress \
--exclude '*@SynoResource' --exclude '@eaDir' \
--exclude '.TemporaryItems' \
--exclude '*.vsmeta' --exclude '.DS_Store' \
/mnt/configs/ /mnt/remote/configs

如果确实如此,我该如何加快速度?

答案1

是的,我相信你的指挥一定会实现你的目标。

由于您同时使用详细模式和进度选项,您能否指出延迟发生的位置?如果延迟发生在文件开始传输之前,则可能是由于所有文件都被编入索引以进行比较,特别是当文件很多或文件很大时。

如果在实际传输过程中速度不够,那么可能有很多原因;带宽是显而易见的原因,将大更改同步到大文件是另一个原因。命令完成后,您应该知道实际传输的数据量与目标文件的总大小相比是多少。

请注意,某些文件类型(特别是 jpeg 和 MP3 等压缩文件)不太适合同步,因为对文件的微小更改将改变整个文件的布局,这意味着几乎整个文件都需要再次同步。

根据数据的性质和更改类型,提高同步速度的一个技巧是将模糊选项 (-y) 与 --delete-after 结合使用。这样,如果您重命名或复制文件,而不必将该文件全部同步(作为新文件),rsync 将使用目标上已有的文件来创建新文件。

Rsync 在某些文件系统上无法完美运行。例如,FAT32 上的 mtime 仅精确到 +/-2 秒,因此 rsync 可能会触发同步实际上并不比源文件更新的文件,即使它看起来比源文件更新。有时,您可以使用 --size 和 --modify-window 参数让 rsync 忽略文件修改时间之间的差异。

答案2

在此命令中,源和目标都是“本地”的。只有通过或协议rsync访问目标时,速度才会真正变快,例如rsyncssh

rsync -av /my/local/dir root@somehost:/my/remote/dir

在这种情况下,rsync将产生一个rsync进程somehost并在本地访问目标目录中的文件(快速,因为不是通过网络)。

在您的配置中,rsync将从本地配置中读取文件,并通过网络读取文件/mnt/remote/configs。为了比较内容,它必须读取所有文件并按块对内容进行哈希处理,因此没有真正的速度优势。

这有帮助吗?

相关内容