You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置rsnapshot利用已有初始大数据集实现增量备份?

解决方案

问题根源

你遇到的全量复制问题,核心是rsnapshot默认启用的--relative参数导致路径结构不匹配:该参数会保留远程源的完整绝对路径(/mnt/datastore/targetdir/),将文件同步到本地targetdir/mnt/datastore/targetdir/,和你手动放置的daily.0/targetdir/结构完全不同,rsync因此判定所有文件都是新文件,触发全量复制。


步骤1:修正rsnapshot.conf配置

编辑你的rsnapshot.conf文件,调整rsync_long_args参数,移除--relative:

# 原配置(含--relative)
# rsync_long_args --delete --numeric-ids --relative --delete-excluded

# 修改后配置
rsync_long_args --delete --numeric-ids --delete-excluded

同时确认snapshot_root配置指向正确的快照根目录(比如你的/home/rsnapshot/):

snapshot_root /home/rsnapshot/

步骤2:确保初始数据路径与元数据一致

  1. 先停止rsnapshot避免冲突:
rsnapshot stop
  1. 创建daily.0/targetdir目录(如果不存在):
mkdir -p /home/rsnapshot/daily.0/targetdir
  1. 用rsync重新同步远程数据到该目录(确保元数据完全匹配,避免rsync误判):
rsync -aH root@server:/mnt/datastore/targetdir/ /home/rsnapshot/daily.0/targetdir/

这一步只会校验已有文件的元数据,不会重新复制400GB数据,速度很快。


步骤3:测试并运行增量备份

  1. 先执行dry-run验证命令逻辑(不会实际修改文件):
rsnapshot -t daily

查看输出的rsync命令,确认没有--relative参数,且目标路径为/home/rsnapshot/daily.0/targetdir/。

  1. 正式运行每日增量备份:
rsnapshot daily

此时rsnapshot会自动将daily.0重命名为daily.1,然后通过--link-dest=../daily.1参数,仅同步远程服务器上的变更文件,不会全量复制。


额外注意事项

  • 确保rsnapshot运行用户(建议用root)对snapshot_root目录有读写权限;
  • 若需保留每周/每月快照,确认rsnapshot.conf中的interval配置正确,例如:
interval daily 7
interval weekly 4
interval monthly 6

内容的提问来源于stack exchange,提问作者Todd Hammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 15:07:27