跳到主要内容

在 RcloneView 中使用空运行预览同步更改后再进行传输

· 阅读需 13 分钟
Tayson
Senior Engineer

一次配置错误的同步可能在几秒钟内删除数千个文件。RcloneView 让你可以在传输任何一个字节之前,通过空运行预览每一项更改,让你在提交同步之前拥有十足的信心。

同步操作是 rclone 中最强大的功能之一。它会让目标与源保持一致,传输新文件、更新已更改的文件,并删除源中已不存在的文件。最后这部分,也就是删除操作,正是让同步既强大又危险的原因。

空运行会模拟整个同步操作,而不会真正移动、复制或删除任何内容。它会准确地向你展示将要发生的事情:哪些文件将被传输、哪些将被删除、哪些将被跳过。你可以查看输出结果,确认它符合你的预期,然后才执行真正的同步。

RcloneView 将空运行直接集成到其同步工作流程中,让你可以在提交更改之前,轻松通过 GUI 预览更改。无论你是在同步两个云远程,还是将本地文件备份到云端,空运行都应该是你每次操作的第一步。

RcloneView 应用预览

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

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

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

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

空运行的作用

启用空运行模式后,rclone 会执行与真实同步相同的所有分析:扫描源和目标,按大小、时间戳或校验和比较文件,并构建要执行的操作列表。唯一的区别是这些操作实际上都不会被执行。

空运行输出会告诉你:

  • 要传输的文件:将从源复制到目标的新增或已修改文件。
  • 要删除的文件:目标中存在但源中不存在、将被移除的文件。
  • 要跳过的文件:两端相同、无需任何操作的文件。
  • 总数据量:将要传输的数据量,帮助你估算所需时间和带宽。

此模拟为只读操作。不会移动、复制或删除任何文件。你的源和目标将完全保持不变。

为什么空运行对破坏性操作至关重要

sync 命令本质上具有破坏性,因为它会删除目标中源里不存在的文件。这是有意为之的设计,正是这一点使同步与复制不同。但这也意味着一旦出错就会产生后果:

  • 同步方向错误:如果你不小心交换了源和目标,同步会删除你的源文件,以匹配一个空的或过时的目标。
  • 路径不正确:同步到错误的目录可能会覆盖不相关的文件,或触发大量删除。
  • 过滤器配置错误:如果你的包含/排除过滤器设置错误,原本想保留的文件可能会在源扫描中被排除,从而在目标中被删除。
  • 身份验证过期:如果源远程的凭据已过期,它可能会显示为空,导致同步删除目标中的所有内容。

空运行可以在任何损害发生之前捕获上述每一个问题。花几秒钟查看输出结果,可以节省数小时的恢复工作。

如何在 RcloneView 中启用空运行

RcloneView 提供了一种简单直接的方式来运行同步预览:

  1. 打开 Job Manager(作业管理器),选择要预览的同步作业。
  2. 在作业配置的 Custom Flags(自定义标志) 部分添加 --dry-run 标志。
  3. 执行该作业。RcloneView 将模拟同步并显示结果。
  4. 在传输监视器中查看输出,了解将会发生什么。
  5. 如果一切看起来正确,移除 --dry-run 标志,然后真正运行该作业。

或者,你也可以使用内置终端直接运行空运行命令:

rclone sync source: dest: --dry-run
transfer monitoring

解读空运行输出

空运行输出使用与真实同步相同的格式,但不会执行任何操作。以下是需要留意的内容:

已传输的文件会列出其路径和大小。请确认这些正是你期望被更新或添加的文件。如果你看到一些本应已经同步的文件被列为传输对象,这可能表明存在时间戳不匹配或校验和差异,值得进一步调查。

已删除的文件是最需要重点审查的项目。列出待删除的每个文件,在真实同步中都将从目标永久移除。如果你在此处看到想要保留的文件,可能需要调整源路径、过滤器或同步方向。

已跳过的文件证实了已同步的文件被正确识别。健康的空运行输出应主要显示跳过的文件,只有少量的传输和删除操作。

结尾处的汇总统计信息会告诉你传输、删除的总数以及总数据量。将这些数字与你的预期进行比较。如果你正在同步一个只改动了一个文件的文件夹,但空运行却显示数千次传输,那说明某处配置有误。

空运行发现的常见意外情况

以下是空运行曾经避免数据丢失的真实场景:

意外的大规模删除:你设置了从 Google Drive 到 S3 的同步,但 Google Drive 的令牌已过期。Rclone 看到的是一个空的源,于是计划删除目标中的所有内容。空运行会显示数千次删除且零传输,立即标记出这个问题。

过滤器不匹配:你为 *.tmp 文件添加了排除过滤器,但不小心输入成了 *.tmpl,这恰好匹配到了你的 Terraform 模板文件。空运行显示这些模板文件将从目标中被删除,从而提醒你发现了这个拼写错误。

基础目录错误:你原本打算同步 remote:projects/2026,却输入成了 remote:projects。空运行揭示了所有项目年份的文件都将被同步,这可能会覆盖你并不打算触及的子目录中的文件。

大小写敏感问题:在不区分大小写的远程(如 OneDrive)和区分大小写的远程(如 S3)之间移动文件,可能会产生重复文件。空运行会显示这些意外的传输,让你能在问题扩大之前处理好大小写冲突。

将空运行纳入你的工作流程

为了实现最大程度的安全,建议将空运行纳入你的标准操作流程:

手动同步时:在执行任何同步操作之前,始终先运行一次空运行。查看输出结果后,再移除该标志并运行真正的同步。多花的这一分钟绝对物有所值。

创建新的计划任务时:创建新的计划同步任务时,先手动使用 --dry-run 运行一次。只有在确认空运行输出符合预期之后,才启用该计划任务。

配置更改之后:每当你修改某个作业的源、目标、过滤器或标志时,在下一次执行之前先运行一次空运行。配置更改可能会产生意外的副作用,而空运行能够揭示这些问题。

定期检查现有作业:即使是稳定运行已久的计划任务,偶尔进行一次空运行审查也是有益的。源数据、远程配置或提供商行为的变化都可能随时间改变同步行为。

将空运行与比较功能结合使用

RcloneView 的文件夹比较功能可以与空运行相辅相成,提供源和目标内容的可视化并排视图。两者结合使用,能为你提供全面的同步前可见性:

  1. 使用 Compare(比较) 功能直观地检查源和目标之间的差异。
  2. 运行空运行,准确了解同步操作将如何处理这些差异。
  3. 验证计划的操作是否与你在比较中看到的内容一致。
  4. 满怀信心地执行同步。
Compare shared folder and My Drive contents

比较功能向你展示当前状态,而空运行则向你展示计划中的操作。两者结合,消除了猜测,确保你既了解有哪些差异,也了解将对这些差异采取什么操作。

进阶用法:将 --dry-run 与其他标志结合使用

空运行可以与所有其他 rclone 标志配合使用,因此你可以模拟出与生产环境完全一致的配置:

  • --dry-run --backup-dir remote:backup 可以同时预览同步操作以及备份副本将存储的位置。
  • --dry-run --filter-from filters.txt 可以验证你的过滤规则是否产生预期的结果。
  • --dry-run --max-age 24h 可以模拟仅同步过去 24 小时内修改过的文件。
  • --dry-run -v 会添加详细输出,提供关于每项计划操作的更多细节。

这种可组合性意味着你可以在将任何配置部署到生产环境之前,先安全地对其进行测试。

开始使用

  1. rcloneview.com 下载 RcloneView
  2. 使用你想要的源和目标创建一个同步作业。
  3. 在自定义标志中添加 --dry-run,然后执行该作业以预览更改。
  4. 仔细查看输出结果,然后移除该标志并运行真正的同步。

空运行不需要任何成本,只需几秒钟,却可以避免灾难性的数据丢失。将它作为每次同步操作的第一步,你就再也不会对同步操作给文件带来的影响感到意外了。


相关指南:

支持的云服务商

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