首页/数据/备份与容灾速查/rsnapshot 快照备份

rsnapshot 快照备份

基于 rsync 与硬链接的备份工具:按配置的 alpha/beta/gamma 保留层级自动轮换多份完整视图快照,适合主机级别的递归备份。

备份与容灾速查数据更新于 2026-10-13

rsnapshot 快照备份

把 rsync 与硬链接结合起来的备份工具:每次备份都产生一个看起来完整的目录,未变化的文件用硬链接指向上一份,因此多份快照占的空间接近增量,但浏览与恢复时不需要考虑链式依赖。配置文件里按 alpha/beta/gamma 定义不同的保留层级,由 cron 触发不同级别实现轮换。

基本信息

适用平台Linux/Unix,依赖 rsync;需 perl
配置文件/etc/rsnapshot.conf,路径必须以斜杠结尾
保留层级alpha(如每 4 小时)、beta(如每天)、gamma(如每周)各自定义份数
远程备份backup 行写 user@host:/path/ 形式,经 SSH 拉取

典型使用场景

  • 主机级日常备份:一次配置覆盖 /etc、站点目录与配置文件
  • 快速恢复:直接进入某份快照的目录路径取文件,无需额外工具
  • 多地保留:同一份配置在不同主机上按层级轮换
  • 远程拉取:备份服务器主动从业务机拉数据,业务机无需存凭据
  • 磁盘用量可控:多份完整视图共享数据块,空间按变化量增长

配置与执行

配置与执行
snapshot_root   /backup/rsnapshot/     # 所有快照的根目录
cmd_ssh         /usr/bin/ssh           # 远程备份时使用
retain  alpha   6                      # 保留 6 份(如每 4 小时一次)
retain  beta    7                      # 保留 7 份(如每天一次)
retain  gamma   4                      # 保留 4 份(如每周一次)
backup  /etc/       localhost/         # 本机目录
backup  /var/www/   localhost/
backup  db@10.0.0.6:/data/  remote-db/ # 远程主机,经 SSH 拉取

预演与执行

预演与执行
rsnapshot -t alpha          # 预演:只打印将要执行的动作
rsnapshot alpha             # 执行 alpha 级别备份并完成层级轮换
rsnapshot beta              # 提升保留层级(通常在 cron 中安排)
ls /backup/rsnapshot/       # 查看各层级目录
du -sh /backup/rsnapshot/   # 观察实际空间占用

要点读法

要点含义注意
保留层级各级别保留份数超出层级的最旧快照会被删除,属轮换而非归档
硬链接未变文件共享 inode快照内文件不可就地修改
snapshot_root快照根目录应与被备份数据放在不同物理设备上
预演参数-t 只打印动作首次配置务必先预演,确认路径与层级
支持远程:backup 行写 user@host:/path/ 形式即可经 SSH 拉取远端数据。快照根目录要放在独立存储上,否则与原数据一起损坏就失去意义。

易错点

  • 保留层级按轮换而非归档:超出层级的旧快照会被删除,长期留存需要额外方案
  • 快照内文件不可就地修改:硬链接共享 inode,修改会影响所有引用该 inode 的快照
  • 配置文件路径未以斜杠结尾:rsnapshot 会拒绝执行或目录层级与预期不符
  • 把快照目录与源数据放在同一块盘:磁盘故障时源与备份一起丢失

数据来源与参考

  • rsnapshot 官方文档(配置与保留层级)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌