如何不丢失你的数字生活:一键 Google 账户备份
想象这样一个场景:你早上醒来,想查看邮件,Google 却告诉你账户已被封禁。没有给出任何解释。听起来像惊悚片的开头?不幸的是,对许多用户来说,这已经成为了现实。在我的实践中,我遇到过很多故事——人们仅仅因为安全算法错误或一连串不幸的事件,就失去了十年来的通讯记录、联系人和日历。
当然,Google 有 Takeout 服务,但说实话:定期使用它相当麻烦。它速度慢、不方便,而且需要手动操作。这就是 node-google-backup 项目的用武之地,它将备份过程变成一个优雅的自动化任务。
这个工具是什么,为什么你需要它?
node-google-backup 是一个用 Node.js 编写的轻量级命令行工具。它的唯一但至关重要的任务是下载你的邮件、联系人和日历事件,以标准格式直接保存到你的硬盘或服务器上。
有趣的是,项目作者 WeeJeWel 创建它是为了回应那些账户被封禁的"恐怖故事"。这里的主要特点是增量功能。该工具不会每次都从头开始下载所有 GB 级别的邮件。它会"智能地"只下载自上次同步以来的新增内容。
为什么这很方便?
当你运行备份时,你不会得到一个巨大的不可读归档文件。该工具会创建一个整洁的文件夹结构,即使没有特殊程序也很容易浏览:
- 联系人:所有联系人以
.vcf格式保存。任何智能手机或邮件客户端都能识别它们。 - 日历:事件以
.ics格式保存。 - 邮件:真正的魔法在这里。邮件以
.eml格式保存,并按三种不同的逻辑组织:按 ID、按会话线程和按标签。
顺便说一句,为了避免占用额外空间,作者使用了符号链接(symlinks)。实际上,邮件存储在 By ID 文件夹中,而所有其他文件夹只包含指向它的链接。从存储架构角度来看,这是一个非常聪明的解决方案。
如何在 2 分钟内运行备份
要开始使用,你需要 Google 的"应用密码"。这是一个特殊的 16 字符代码,允许第三方程序安全地连接到你的账户,而无需使用你的主密码。你可以在 Google 账户的安全设置中创建一个。
方式 1:通过 Node.js (npx)
如果你已安装 Node.js,甚至不需要下载任何东西。只需运行命令:
$ npx -y google-backup \
--username "[email protected]" \
--password "ваш-пароль-приложения" \
--filepath "~/Backups/Google/"
方式 2:通过 Docker
对于容器化爱好者(以及那些想在家用服务器或 NAS 上运行的人来说),有一个现成的 Docker 镜像。这可能是设置定期备份最方便的方式:
$ docker run \
--env GOOGLE_BACKUP_USERNAME="[email protected]" \
--env GOOGLE_BACKUP_PASSWORD="ваш-пароль-приложения" \
--env GOOGLE_BACKUP_FILEPATH="/backups" \
--env GOOGLE_BACKUP_SERVICES="mail,calendar,contacts" \
--volume="~/Backups/Google/:/backups/" \
ghcr.io/weejewel/google-backup
实际用例:如何在现实生活中使用?
- 安心睡眠:在服务器或树莓派上设置
cron,让脚本每周运行一次。现在,无论 Google 发生什么,你最近十年的通讯记录始终触手可及。 - 数据迁移:如果你决定离开 Google 生态系统,这个工具可以帮助你以干净的格式"提取"数据,准备好导入到其他服务。
- 本地搜索:
.eml格式能被 macOS 的 Spotlight 或 Windows Search 等系统搜索工具很好地索引。有时候在本地文件夹中找一封旧邮件比在 Gmail 网页界面上更快。
技术细节
该项目用 JavaScript 编写,并积极利用 IMAP 协议(用于邮件)以及相应的联系人 API 和日历 API。很高兴看到这个项目仍然活跃:据 GitHub 显示,它定期更新,Docker 镜像通过 GitHub Actions 自动构建。
你应该试试吗?绝对应该,如果你重视你的数据的话。这正是那种小工具解决大潜在问题的案例。正如人们常说的,人分为两类:还没备份的人,和已经在备份的人。有了 node-google-backup,你可以在五分钟内进入第二类。
如果你还使用 Apple 服务,同一个作者有一个类似的 iCloud 项目。但那就是另一个故事了。
好好保护你的数据!
相关项目