电脑上清理掉的项目素材,你还想在云盘找回来,就用 copy。只有云盘也必须清掉这些素材时,才选择 sync。这个决定与上传速度无关,关键是云盘承担“留底”还是“当前工作目录镜像”。
copy不删除,为什么旧文档还是可能消失?
官方copy说明区分了两件事:目标独有文件会保留,源与目标被判定相同的文件会跳过。但源文件内容改了,同路径的目标文件仍可能被更新。因此,“保留删掉的文件”和“保留每次修改前的版本”不是一回事。
下面是示例项目,假定两端没有过滤规则,也没有同名重复对象。昨天已上传预算表和海报,今天新增附件,并改动原来的两份文件:
| 今天电脑上的变化 | 再运行copy后 | 再运行sync后 |
|---|---|---|
| 新建提案附件 | 云盘增加附件 | 云盘增加附件 |
| 修改原有预算表 | 云盘预算表更新 | 云盘预算表更新 |
| 删除旧版海报 | 云盘仍留旧海报 | 云盘删除旧海报 |
如果预算表被误改成空白,单靠copy并不能找回昨天的数字。它解决的是保留目标独有文件,历史版本要另做安排。
sync适合哪种云盘目录?
例如,你把当前网站发布文件上传到一个专用目录,已经下架的页面也应离开目标,sync才符合这个任务。不要将团队共同存放资料的云盘根目录当目标:同事只在云盘新增的文件,也属于“源端不存在”。官方sync文档明确写明,它只修改目标,必要时删除文件;不是两边自动合并。执行sync前也应加 --dry-run 查看拟删除项。被过滤排除的文件默认不参与删除,除非另加 --delete-excluded。
选目标时,把“原始资料”“发布镜像”“历史归档”分开命名。本文后面使用的备份目录只服务一个本地项目,不拿整个云盘做试验场。网站部署本身可接着看静态网站部署教程,别把文件复制成功等同于网站已经发布。
用五步完成第一次云盘备份
以下命令是依据官方文档整理的示例,未连接真实云盘执行。前提是已安装rclone;当前终端所在位置下有一个存着少量普通文件的project目录。云盘授权和存储类型由你自己的服务决定。
第1步:配置remote。 用交互配置命令建立云盘连接,示例把连接命名为cloud。这个名字是本地配置别名,不是某家云盘品牌:
rclone config
第2步:预演。 目标目录写到项目这一层。这里复制的是project里面的内容,不会自动在目标下再套一层project:
rclone copy ./project cloud:backups/project --dry-run -v
阅读拟复制或更新的文件路径。如果出现其他项目,修改命令中的目录后重新预演。dry-run不实际复制;它也不能代替正式上传后的内容检查。
第3步:上传。 范围正确后移除预演参数,进度显示用来观察任务是否仍在传输:
rclone copy ./project cloud:backups/project -P
这一步还没有启用旧版归档,适合第一次上传。若目标已有不能丢的同名版本,先采用下一节的归档写法。
第4步:核对。 因为copy允许云盘多留文件,使用单向检查:
rclone check ./project cloud:backups/project --one-way
check文档说明,它不修改两端文件。处理报告中的缺失、不同或读取错误;不能把“命令结束”理解成全部匹配。默认检查依赖大小和可用哈希;若没有共同哈希,不能把大小相同当成内容一致。可在上述命令末尾加 --download 读取数据比较,但这会增加传输开销。
第5步:取回一份。 恢复到尚不存在或空的独立目录,避免盖住工作文件,也避免混入上次恢复的残留:
rclone copy cloud:backups/project ./restore-project
打开预算表确认数字和公式,打开素材确认内容。这里检查的是你是否能使用备份,不只是云盘是否出现了文件名。
按前面的三文件例子,恢复目录应有新附件、更新后的预算表,以及本地已经删除的旧海报。如果你的目标是留底,多出来的海报正是预期结果。下次整理项目时,可以把这种预期写进任务备注,避免后来维护脚本的人为了“消除差异”把copy改成sync。
怎样给copy加一份旧版归档?
backup-dir参数能把将被覆盖或删除的旧文件移到归档目录,保留原有层级。要求目标后端支持服务端移动或复制,归档与目标使用同一个remote;目录不能重叠,除非做了相应排除。
下面将当前副本与归档放在两个平级目录。时间只是示例,每次任务换成新的唯一目录名:
rclone copy ./project cloud:backups/project --backup-dir cloud:history/project/2026-09-15-0900 --dry-run -v
确认预演后,移除 --dry-run 执行。不要把归档目录看成当天完整快照:今天只改预算表,归档里可能只有旧预算表。恢复某个旧文件时,应从对应任务的归档取回;不能拿整个归档直接sync覆盖当前项目。同一个归档路径反复使用,还可能覆盖里面同名的旧版。
文件备份还缺哪一块?
这个例子只处理普通文件,没有覆盖云端原生文档导出、符号链接或特定云盘回收站规则。也没有测试各服务的上传耗时和费用,不用并发参数推导实际速度。
数据库要先生成可恢复的导出文件,再交给rclone传输;复制正在写入的数据库目录不能替代数据库备份。可参考Supabase数据库与Storage分别备份。当复制、检查和恢复都做通后,再接Uptime Kuma定时任务心跳,把成功通知放在检查完成之后,而不是任务刚启动时。