跳到主要内容

修复同步过滤器无法排除文件的问题 — 用 RcloneView 编写正确的排除规则

· 阅读需 6 分钟
Jay
Tech Writer

如果本应排除的文件仍出现在目标位置,原因通常是模式的锚定方式,而不是过滤器坏了。

一位开发者将项目文件夹同步到 Backblaze B2,并添加了 .git 排除规则。第二天早上,存储桶里依然有成千上万个 Git 对象。过滤规则遵循 rclone 的匹配逻辑,因此少一个斜杠就会改变规则匹配的内容。RcloneView 将这些规则放在同步向导的 Step 3 中,并提供试运行(Dry Run),让你在任何文件移动之前进行测试。

RcloneView 应用预览

在一个地方管理和同步所有云端

RcloneView 是 rclone 的跨平台 GUI。通过清爽的可视化界面比较文件夹、传输或同步文件,并自动化多云工作流。

  • 一键作业:复制 · 同步 · 比较
  • 调度器与历史记录,实现可靠的自动化
  • 支持 Google Drive、OneDrive、Dropbox、S3、WebDAV、SFTP 等
WindowsmacOSLinux
免费开始使用 →

核心功能免费。Plus 提供自动化功能。

排除规则为何会漏掉文件​

大多数过滤问题都源于锚定。以 / 开头的模式只从同步源的根目录开始匹配。不带 / 的模式可以在任意层级匹配。RcloneView 过滤设置中的示例展示了其中的区别:

  • .iso 会排除目录树中任意位置具有该扩展名的文件。
  • /.git/* 只排除源根目录下 .git 文件夹中直接包含的文件。
  • .git/ 会排除任意层级的所有 .git 文件夹,这正是大多数开发者想要的。

如果你只写了 /.git/*,像 client-a/app/.git 这样的嵌套仓库仍会被同步。由于 * 在文件夹边界处停止,它们的子文件夹也会被同步。改用不带锚定的文件夹规则后,嵌套仓库就会被排除。

在配置同步过滤器之前于 RcloneView 中添加远程

第二个常见错误是选错了源文件夹。根锚定的模式是相对于 Step 1 中选择的文件夹而言的,因此把源向上移动一级就会改变它们匹配的内容。

检查其他过滤设置​

向导中的过滤器不只有自定义规则。Step 3 还提供 Max file size(以 MB 为单位)、Max file age(使用 y、d、h、m、s 单位)、Max folder depth,以及针对 Music、Video、Image、Document、Google Docs 和 Box Docs 的预定义过滤器。这些设置会组合生效,因此一个早先复制的任务可能会出现意料之外的行为。

例如,测试时设置后被遗忘的文件夹深度限制,会让更深层的子文件夹被悄无声息地跳过。在重写自定义规则之前,请在 Job Manager 中打开任务,清除不需要的限制。

RcloneView 中显示过滤后同步结果的云到云传输视图

用试运行和比较验证修复​

切勿在实际数据上测试过滤器的更改。先以试运行模式运行任务。它会列出将被复制的文件和将被删除的文件。如果被排除的路径仍出现在复制列表中,说明模式仍然有误。

请记住,被排除的文件在目标端同样不会被处理。如果不需要的文件已经进入存储桶,使用新过滤器执行单向同步也不会删除它们。使用 Folder Compare 找到这些文件,在目标端选中多余的 .git 文件夹并将其删除。在 PLUS 许可证下,Folder Compare with Filter 会将相同的规则应用于比较,使视图只显示任务实际管理的内容。

RcloneView 中显示仅存在于一侧的文件的 Folder Compare

试运行结果确认无误后,运行任务,并将 Job History 中的文件数量与试运行预览进行核对。

RcloneView Job History 显示修复过滤器后传输的文件

开始使用​

同步任务、过滤器、试运行和 Folder Compare 均包含在 FREE 许可证中。

  1. 从 rcloneview.com 下载 RcloneView。
  2. 打开 Job Manager,编辑任务,检查 Step 1 的源文件夹和 Step 3 的过滤设置。
  3. 当文件夹可能出现在任意层级时,将 /.git/* 这类根锚定模式替换为 .git/。
  4. 运行试运行,确认被排除的路径已消失,然后用 Folder Compare 清理残留文件。

精确的过滤规则可以让备份保持精简,并避免构建产物和仓库数据计入你的云账单。


相关指南:

支持的云服务商

Local Files
WebDAV
FTP
SFTP
HTTP
SMB / CIFS
Google Drive
Google Photos
Google Cloud Storage
OneDrive
Dropbox
Box
MS Azure Blob
MS File Storage
S3 Compatible
Amazon S3
pCloud
Wasabi
Mega
Backblaze B2
Cloudflare R2
Alibaba OSS
Ceph
Swift (OpenStack)
IBM Cloud Object Storage
Oracle Cloud Object Storage
IDrive e2
MinIO
Storj
DigitalOcean Spaces