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 拉取远端数据。快照根目录要放在独立存储上,否则与原数据一起损坏就失去意义。