定期进行异地备份可以保护关键数据,使其免受硬件故障、勒索软件和本地灾难的影响。但运行无头服务器或计划脚本的开发者、系统管理员和注重隐私的高级用户,无法依赖通过浏览器或桌面应用手动上传。

随着 Proton Drive CLI(命令行界面)的发布,您可以将 Proton 的零知识端到端加密 (E2EE) 引入云备份自动化中:您的备份脚本和计划 shell 工作流。

要高效使用 CLI,就必须理解它所扮演的角色。本指南将说明为何由 CLI 驱动的备份架构优于持续的后台同步、冲突策略如何处理文件版本,以及如何在 Linux、macOS 和 Windows 上计划完全加密的异地备份。

什么是异地备份,它为何重要?

如果备份与数据存放在同一台机器上,那它就算不上真正的备份。硬件会发生故障。勒索软件会加密它所能触及的一切,包括已连接的硬盘。火灾、洪水或盗窃不会区分您的主硬盘和就摆在它旁边的备份硬盘。

3-2-1 备份法则正是为此而生:至少保留 3 份数据副本,存放在至少 2 种不同的介质上,其中至少 1 份位于异地。

那份异地副本理应与您的其他备份和主数据在地理上分离,它是您的最后一道防线,因此必须存放在本地故障无法波及的地方。如果它存放在云中,服务提供商也必须无法读取它。Proton Drive CLI 正是在此发挥作用。

为什么要加密异地备份?

将备份存储在异地意味着把数据托付给第三方:一台不受您控制的远程服务器,由一家所有权或策略可能变更的公司运营,其基础设施可能被传唤调取或遭到入侵。

端到端加密可以解决这个问题。您的文件在离开设备之前就已在设备上完成加密。如果云服务器被攻破,攻击者、服务提供商或任何没有您解密密钥的人都无法从中读取任何内容。

对于通过桌面应用、移动应用和 CLI 上传的一切内容,Proton Drive 默认采用端到端加密。您已加密的异地备份受到与 Proton 为 Proton Mail 打造的相同零访问架构的保护,并遵循严格的瑞士隐私法律。

了解 Proton Drive CLI:原子脚本与后台同步

CLI 的工作方式与桌面同步应用不同:

桌面和移动应用(同步引擎)在后台持续运行。它们会监视文件变更,并将每一次新增、编辑和删除都复制到云端。

Proton Drive CLI(原子执行引擎)只运行一条命令,例如 upload、download 或 list,随后便退出。它不会监视本地文件夹,也不会在后台运行。

为什么原子化 CLI 对安全性和备份很有意义

持续运行的同步守护进程会镜像您的数据,因此无法通过 3-2-1 检验。如果文件在本地被删除,无论是意外、脚本错误还是勒索软件所致,删除操作都会立即传到云端。而如果攻击者在守护进程运行时入侵您的系统,他们就能读取其活动会话令牌。

CLI 通过启用定期、按计划执行的备份解决了这一问题。您调用它,它执行,然后停止,并留下一个安全的时点恢复快照;一旦文件在本地被意外删除或损坏,您可以依靠它恢复。

注意:CLI 本身并不是完整的备份解决方案。您仍需自行决定备份哪些内容、多久备份一次、保留多少个版本,以及如何测试恢复。

冲突策略如何管理增量备份

根据设计,CLI 会自动跳过未修改的相同文件以节省带宽。不过,当某个文件在本地确实被修改过时,您必须通过冲突策略告诉 CLI 如何处理它。

备份时请避免使用 skip。虽然它可以避免重复工作,但会完全忽略已修改的文件。请改用符合您保留需求的策略:

--file-conflict-strategy create-new-revision(推荐用于备份)会将更改后的文件作为新版本上传,并保留其历史记录。保留的版本数量取决于您的套餐,而且版本会占用存储空间。

--file-conflict-strategy rename 会在修改后的文件名后添加后缀,并保留两份副本。

--file-conflict-strategy replace 会用新文件覆盖先前的文件。旧版本将丢失。

--file-conflict-strategy skip 会忽略云端已存在的任何文件,因此更改永远不会被保存(不推荐用于备份)。

增量上传命令示例:

proton-drive filesystem upload ./my-local-data /my-files/Backups/Daily \
--folder-conflict-strategy merge --file-conflict-strategy create-new-revision

设置自动加密备份:分步指南

您需要准备:

  • 一个 Proton 帐户(免费或付费;适用存储空间限制)
  • 适用于您平台的 Proton Drive CLI 二进制文件(Linux、macOS 或 Windows)
  • 一个 shell 环境(Terminal、Bash、Sh、PowerShell)
  • 用于自动运行的任务计划程序:cron(Linux/macOS)或任务计划程序(Windows)

第 1 步:登入并执行手动测试

在设置自动化之前,请先以交互方式对您的设备进行身份验证:

proton-drive auth login

无头身份验证的工作方式:当您在无浏览器的服务器(例如远程 VPS 或家庭 Linux 节点)上运行 auth login 时,CLI 会打印一个登入网址。请在任意带浏览器的设备上打开它,例如笔记本电脑或手机,并完成登入。此后该服务器即处于登入状态。

无头服务器 / cron 提示:对于通过 cron 运行的无头系统和自动化系统,建议使用 pass 作为凭证存储。可通过以下环境变量进行设置:export PROTON_DRIVE_CREDENTIALS_STORE="pass")。标准 OS 密钥环(libsecret / GNOME Keyring)依赖于活动的 GUI 桌面会话,而 cron 作业没有此类会话。设置 pass 可避免 D-Bus 会话问题。

第 2 步:编写备份脚本

创建一个 shell 脚本(例如 backup.sh),用它定义源路径、处理密钥环并执行上传:

#!/usr/bin/env bash
set -euo pipefail

# 定义变量
LOCAL_DIR="/var/backups/data"
REMOTE_DIR="/my-files/AutomatedBackups"
export PROTON_DRIVE_CREDENTIALS_STORE="pass"

# 执行幂等上传
proton-drive filesystem upload "$LOCAL_DIR" "$REMOTE_DIR" \
--folder-conflict-strategy merge \
--file-conflict-strategy create-new-revision \
--json > /var/log/proton-backup-$(date +%Y%m%d-%H%M%S).json

echo "备份已于 $(date) 成功完成"

第 3 步:使用 cron 或 systemd 定时器计划备份

要使用 cron 每晚凌晨 2:00 运行此备份:

  1. 打开 crontab 编辑器并添加:
crontab -e
  1. 添加计划执行条目:
0 2 * * * /usr/local/bin/backup.sh >> /var/log/proton-backup.log 2>&1

自动异地备份的最佳实践

可用的脚本只是起点。以下三个习惯能让您的异地备份保持完整、易于监控,并且不超出存储空间上限。

测试您的恢复流程:无法正常恢复的备份等同于没有备份。请准备一个基于 proton-drive filesystem download 构建的恢复脚本,并定期测试,确保在故障发生时能够正常使用。

以机器可读格式记录日志:在脚本中添加 --json,即可输出结构化的 JSON 日志。之后,您可以用 jq 分析任务状态,或在备份失败时触发 webhook。

遵守合理使用原则:不要安排高频上传,例如每 60 秒一次。对于异地备份,每天或每周执行一次就足够了。

您的异地备份,已加密且自动化

备份的安全性取决于它所存放的地方。借助 Proton Drive CLI,每晚的任务都会发送一份已加密的异地备份,除了您之外任何人都无法读取。攻击者不能,您的主机服务商不能,Proton 也不能。

您将获得端到端加密、瑞士隐私法的法律庇护,以及经过独立审计的开源代码。您还能完全掌控自己的备份流程:运行什么、何时运行,以及每个版本保留多久。

设置只需几分钟。下载适用于 Linux、macOS 或 Windows 的 CLI,运行第一次手动备份,然后安排计划任务,从此不必再操心。