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

rsnapshot调用rsync -aF时.rsync-filter不生效全量同步Library如何解决

rsync过滤规则不生效问题排查与修复

问题根因

  • rsync过滤规则采用从上到下优先匹配逻辑,你用到的-F参数默认会读取远程被拉取端对应目录下的.rsync-filter文件,如果你的过滤规则文件存放在本地归档服务器,而非远程Mac的/Users/garethhowell/路径下,规则会完全不生效,导致全量同步Library目录。
  • 你当前规则末尾的排除逻辑存在冗余,且没有显式匹配iCloud相关的默认路径,导致iCloud目录没有被过滤。

修复方案

1. 修正过滤规则文件内容

替换你现有的.rsync-filter末尾Library相关规则为如下内容,同时新增iCloud目录过滤规则:

- /tmp*
- /temp
- /lost+found

# Office temporary files
- ~$*

# Common Mac junk
- .TemporaryItems
- .DS_Store/
- .Trash/
- ._*

# Specific stuff
- /Downloads/
- /VMWare/
- /VirtualBox\ VMs/
- /opt/

# 新增iCloud相关目录过滤
- /Library/Mobile\ Documents/
- /Library/CloudStorage/
- /Library/Containers/com.apple.iCloud*

# Library目录按需同步规则
+ /Library/
+ /Library/Containers/
+ /Library/Containers/com.apple.BKAgentService/
# 排除Containers下所有非显式包含的内容
- /Library/Containers/*
# 排除Library下所有非显式包含的一级内容
- /Library/*

2. 修正rsync命令的过滤规则读取逻辑

如果你的.rsync-filter文件存放在本地归档服务器,需要把原命令中的-F参数替换为--filter='merge /本地存放过滤规则的绝对路径/.rsync-filter',修改后的命令参考:

/usr/bin/rsync -azv --delete --numeric-ids --relative --delete-excluded --rsh=/usr/bin/ssh --filter='merge /path/to/your/.rsync-filter' garethhowell@172.29.12.159:/Users/garethhowell /import/archive/rsnapshot1/alpha.0/mbpro.agdon.net

如果你的过滤规则文件存放在远程Mac的/Users/garethhowell/目录下,保留-F参数即可,需要确保文件权限对rsync的执行用户可读。

3. 规则生效验证

可以给rsync命令加上--dry-run参数试运行,查看输出的同步文件列表是否符合预期,确认不会同步不需要的iCloud目录和其他Library下的冗余内容后再执行正式备份。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:42:02