Rsync:本地缓存文件通过慢速链接发送吗?

Rsync:本地缓存文件通过慢速链接发送吗?

这是关于增量硬链接备份的方法,制作一个每日目录,其中包含指向原始文件的硬链接副本,然后 rsync 删除硬链接并放置自上次备份以来更改的任何新文件。

我必须应对速度非常慢的远程 rsync NetGear ReadyNAS Duo,它只有很小的大脑,只能处理大约 2 兆比特/秒的 SSH 复制速率,而我有 50 多兆比特的可用带宽。我不想让要备份的程序关闭数小时,而备份数据会慢慢流向速度缓慢的远程 NAS。

有没有办法可以快速创建要同步的特定文件的临时本地副本,以最大限度地减少应用程序/数据库停机时间?

显然,据我所知,最大限度减少应用程序停机时间的最佳方法是这样的:

  1. 停止要备份的程序/数据库
  2. 对远程位置运行 rsync,但仅列出它将复制的文件
  3. 使用 cp 将这些特定文件/目录复制到快速临时本地存储
  4. 重新启动要备份的程序/数据库
  5. Rsync 通常从临时目录同步到慢速远程存储
  6. 删除临时本地文件副本

这是远程缓存要同步的文件的最快方法吗,或者还有其他更好的方法吗?

是否有更自动化的方法来做到这一点,而不需要所有这些单独的脚本步骤?

答案1

rsync没有专门针对这种情况的功能。不过,您可以通过以下方式模拟这种情况:

  • 停止数据库,备份到本地磁盘,启动数据库。用于rsync备份本地副本。优点:最大限度地减少停机时间。缺点:您需要两倍的本地磁盘空间。
  • 运行两次rsync。第一次使用--exclude=--include=标志跳过数据库。第二次先停止数据库,然后使用另一组--exclude=--include=标志仅备份数据库文件,然后重新启动数据库。优点:不需要本地额外磁盘空间。缺点:停机时间更长,管理更困难(构建正确的包含/排除标志是手动的,容易出错)

如果可能的话,我会选择第一种方案。有一件事可以让事情变得更简单,那就是有一个非常明确的备份/未备份空间,以使 rsync 命令行更简单,更容易正确使用。

相关内容