镜像还是双向同步?
开始之前,先确定哪一侧是对的:
| 你希望 | 选择 | 作用 |
|---|---|---|
| 服务器与你的 Mac 一致 | 向服务器一侧镜像 | 拷贝新增或更改的内容;可以删除仅存在于服务器上的内容 |
| 你的 Mac 与服务器一致 | 向你的 Mac 一侧镜像 | 相同,方向相反 |
| 两侧都保留对方的更改 | 双向同步 | 双向拷贝更改,让每一侧都得到另一侧的内容 |
部署网站或保留备份时,镜像是正确的选择。双向同步适合在两个地方都会变化的文件夹,比如共享的 WebDAV 文件夹。
逐步同步文件夹
- 按 ⌘T 打开一个标签页,在一个窗格中显示你 Mac 上的文件夹:从窗格的来源菜单中选择本机。
- 按 ⌘\ 打开第二个窗格,并用 ⇧⌘K 或 ⌘K 中的书签将它连接到服务器。
- 在服务器上打开对应的文件夹。
- 按 ⌥F5。AnyBucket 会比较两个窗格,逐行列出每个文件。
- 选择方向:向任一方向镜像,或双向同步。
- 查看各行。每一行都会显示它的操作,例如把文件拷贝到对面,或删除仅存在于目标位置的文件。
- 更改你不认同的行的操作,然后开始同步。
拷贝会通过传输队列进行,同步完成时会有通知告诉你。
传输之前检查每一行
在你开始同步之前,什么都不会改变。在那之前,这个列表是一份可以编辑的计划:每一次拷贝和每一次删除都有自己的一行。因此,即使是重要的文件夹,也可以放心地使用镜像。如果某个删除看起来不对,只更改那一行,其余保持不变。
同步两台服务器
比较与同步适用于两个窗格显示的任何内容,因此并不局限于你的 Mac 和一台服务器。你可以把预发布服务器镜像到生产环境,让一个 S3 存储桶和一个 Backblaze B2 存储桶保持一致,或者检查从旧 FTP 主机到新 SFTP 服务器的迁移是否完整。需要在两台不同服务器之间拷贝的文件会经由你 Mac 上的小型中转缓冲区传输;在同一台服务器上,拷贝直接在服务器上完成。
不用 App 的做法
对于 SSH 服务器,终端中的 rsync 可以镜像文件夹,--dry-run 能先显示它会做什么。但它无法用于 S3、WebDAV 或 FTP,它的预览也只是一份无法编辑的文本列表。如果你习惯使用 rsync,AnyBucket 的 SFTP 使用同样的 ~/.ssh 配置,两者可以并行使用。
让同步干净利落的技巧
- 先从镜像开始:当一侧显然是对的时候,比如你准备发布的构建文件夹。
- 同步前重新比较:如果中间隔了很久,这样计划才能反映两侧当前的状态。
- 留意队列:“传输”窗口(⌥⌘T)和菜单栏会显示进度,失败的项目会带着错误信息在需要处理下等待。
- 普通拷贝时的冲突另行处理:较新时替换、保留两者和继续,请参阅冲突。