rsync 排除与包含规则是什么
用排除与包含选项控制备份范围:缓存目录、临时文件、可再生成内容通常不必进备份,排除它们能节省空间并缩短窗口。规则自上而下匹配、先命中的先生效,因此写法与顺序都会影响最终结果,规则集复杂时建议集中放在文件里统一维护。
基本信息
| 常用选项 | 排除、包含与从文件读取规则三种形式 |
|---|---|
| 匹配顺序 | 自上而下,先命中的规则生效 |
| 模式语义 | 是否带斜杠会影响匹配范围 |
| 维护建议 | 规则集中放在独立文件,纳入版本管理 |
常用排除写法
常用排除写法
rsync -a --exclude='*.tmp' --exclude='cache/' --exclude='.git/' /data/ /backup/data/
# 规则集中维护
rsync -a --exclude-from=/etc/backup-exclude.txt /data/ /backup/data/
# 预演确认排除结果符合预期
rsync -avn --exclude-from=/etc/backup-exclude.txt /data/ /backup/data/ | head包含优先的规则顺序
包含优先的规则顺序
# 规则自上而下匹配,先命中的先生效
- *
+ /important/
+ /important/**
# 说明:先排除全部,再逐条放行需要的目录规则写法要点
| 写法 | 含义 |
|---|---|
| 带斜杠结尾 | 只匹配目录 |
| 不带斜杠 | 可能匹配同名文件与目录 |
| 以斜杠开头 | 从传输根目录开始匹配 |
| 双星号 | 匹配多层子目录 |
| 规则文件 | 每行一条,便于集中维护与复核 |
使用要点
- 排除范围要和恢复预期对齐:被排除的密钥与配置若无法再生成,恢复后系统可能无法还原
- 先预演再上线:规则变更后用预演确认被排除与保留的文件符合预期
- 规则文件纳入版本管理,改动留痕便于回溯是哪次变更引入了问题
- 宽泛规则写在后面:把精确规则放前面,避免被一句话全排除掉
- 定期复核排除清单:新增业务目录后要确认它们没有被旧规则一并排除
排除范围要和恢复预期对齐:被排除的密钥、配置若无法再生成,恢复后系统可能无法还原,排除规则应经过恢复方确认。