如何使rdiff备份带宽高效?

我正在使用rdiff-backup将文件从我的服务器备份到备份服务器。 我使用类似于以下的命令来运行备份:

rdiff-backup [email protected]::/home/user/data/complete complete 

这个备份工作正常。 但是,从Rdiff备份的function页面上可以看出:

带宽效率 :rdiff-backup依赖于librsync,因此使用与rsync相同的差别algorithm(rsync和rdiff-backup严格来说不共享任何代码)。 […]例如,假设你略微改变大文件A来创build大文件A' ,并且A仍然在远程系统上 。 当rdiff-backup运行时,它只会通过diff A-> A'发送

远程文件是使用mysqldump生成的数据库转储,每小时创build一次。 数据每小时不变多less。 每个文件名的格式为YYYYMMDDHHMM.sql

根据我对上述'function'的解释,rdiff-backup应该发送一个小差异来创build基于目录中其他文件的文件 – 换句话说,如果A prime是最新的备份, A是T -1的备份,它应该发送一个小的差异从AA prime

但是,这显然不是这样工作的。 它正在发送整个新文件,即使新文件只是略有不同。 我希望数据传输是几兆字节,但它正在传输数百兆字节。

另外从手册页 :

rdiff-backup还可以通过pipe道以带宽有效的方式运行,如rsync(1)。 因此,您可以使用ssh和rdiff-backup安全地将硬盘驱动器备份到远程位置,并且只会传输差异。 使用默认设置,rdiff-backup要求远程系统接受ssh连接,并且rdiff-backup安装在远程系统的用户PATH中。 有关其他选项的信息,请参阅远程操作部分。

所以我的问题是:

  1. 我是否正确解释这个function?
  2. 如果我是这样,我该如何使用rdiff-backup来运行?

根据你的post,你每小时生成一个独特的SQL转储YYYYMMDDHHMM.sql
这是每次都有唯一文件名的新文件。
如果您正在更改源文件(而不是生成新文件),则此function将适用。
否则它会查看源文件,发现全新的文件YYYYMMDD HH + 1 MM.sql,不知道在名为YYYYMMDDHHMM.sql的目标文件是非常接近的事情,它将开始同步文件YYYYMMDD HH + 1 MM.sql到目的地。
如果你想使用这个function – 那么当在源文件上生成新文件YYYYMMDD HH + 1 MM.sql时 – 你需要启动一些脚本,它将连接到目的地,并创build一个文件YYYYMMDDHHMM.sql

 cp YYYYMMDDHHMM.sql YYYYMMDDHH+1MM.sql<br> 

之后,启动你的同步。
通过这种方式,它会发现目的地具有相同名称的文件,并希望尝试使用这种部分同步algorithm。