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

混合增量备份与同步备份的可维护实现方案咨询

混合增量备份与同步备份的可维护实现方案咨询

这个需求其实挺常见的,我之前也帮朋友处理过类似的场景,给你几个可维护性强的方案,你可以根据自己的目录结构和使用习惯来选:

方案一:目录拆分法(最直观易维护)

最简单的方式就是把源目录拆成两个明确的子目录:

  • source/sync_content:存放需要**完全同步(删源即删目标)**的文件
  • source/add_only_content:存放需要**只增不减(删源不删目标)**的文件

然后分别执行两个rsync命令:

  1. 同步删除型备份:
rsync --delete -av /path/to/source/sync_content/ /path/to/dest/sync_content/

--delete参数会让目标目录完全跟上源目录的变化,源里删了的文件,目标也会删掉;-av是归档模式+显示详细信息,能保留文件权限、时间戳等属性。

  1. 只增型备份:
rsync -av --ignore-existing /path/to/source/add_only_content/ /path/to/dest/add_only_content/

--ignore-existing会跳过目标里已经存在的文件,只把源里新增的文件复制过去,哪怕源里删了旧文件,目标里的版本也会保留。

这个方案的好处是逻辑清晰,几乎不会出错,后期维护的时候一眼就能分清哪些内容是哪种备份策略,新手也能快速上手。

方案二:rsync过滤规则法(无需改动现有目录结构)

如果不想调整现有的目录结构,可以用rsync的include/exclude规则来区分两种文件:

比如假设你的源目录里,docs/是需要同步删除的,photos/是只增不减的,那可以分两次执行rsync:

  1. 同步删除指定目录:
rsync --delete -av --include='docs/***' --exclude='*' /path/to/source/ /path/to/dest/

这里的规则是“先包含docs下的所有内容,再排除其他所有内容”,确保只处理docs目录,并且同步删除。

  1. 只增备份指定目录:
rsync -av --ignore-existing --include='photos/***' --exclude='*' /path/to/source/ /path/to/dest/

同理,只处理photos目录,且只新增不删除。

如果规则比较复杂,还可以把过滤规则写到一个文件里,比如filter_sync.txt:

+ /docs/***
- *

然后用--filter='merge filter_sync.txt'参数来调用,命令会更简洁:

rsync --delete -av --filter='merge filter_sync.txt' /path/to/source/ /path/to/dest/

注意:rsync的过滤规则顺序很重要,先写include再写exclude,不然会出现规则不生效的情况。

方案三:脚本自动化封装(一键执行,定期备份)

不管用上面哪种方案,都可以把命令封装成shell脚本,方便一键执行,甚至可以用定时任务自动备份。

比如写一个mixed_backup.sh:

#!/bin/bash

# 定义源目录和目标目录
SOURCE="/home/yourname/source_root"
DEST="/mnt/external_drive/backup"

# 同步删除型备份(先加-n参数测试,确认没问题后再去掉-n)
rsync --delete -avn "$SOURCE/sync_content/" "$DEST/sync_content/"

# 只增型备份
rsync -av --ignore-existing "$SOURCE/add_only_content/" "$DEST/add_only_content/"

# 记录备份时间到日志
echo "Backup finished at $(date '+%Y-%m-%d %H:%M:%S')" >> "$DEST/backup_log.txt"

然后给脚本加执行权限:

chmod +x mixed_backup.sh

额外注意事项

  • 测试优先:所有rsync命令都可以先加-n(--dry-run)参数,模拟执行过程,确认不会误删文件再正式运行。
  • 权限检查:确保你的用户对源目录和外部驱动器有读写权限,不然rsync会报错。
  • 日志记录:在脚本里加上日志输出,方便后续排查备份是否成功。
  • 定时任务:如果需要定期备份,可以用cron(Linux/macOS)或者任务计划(Windows)来自动运行脚本。

备注:内容来源于stack exchange,提问作者Alexandru Dinu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 12:08:05