Obsidian 加密备份 - Google Drive、Dropbox、OneDrive

Obsidian 加密备份 - Google Drive、Dropbox、OneDrive

· json · rss
Watch:

正文

在使用 Evernote 几年后,我最终将所有笔记迁移到了 Obsidian,这样我就可以完全控制我的笔记,并且可以使用、移动或利用这种格式。因此,我的笔记将不再存在于云端和我的私人设备中,因此任何冗余和备份都需要由我通过个人定期备份来保证。

十多年的笔记都依赖于单一的冗余,这让我有些不安,所以我能想到的选择是:

  1. 订阅Obsidian 的同步服务,每月需支付 4 美元。我的加密笔记将绑定到 Obsidian 的云服务
  2. 拥有一个自定义解决方案,利用 Obsidian 出色的可定制性,压缩和加密我的所有笔记,并使用云服务来托管此存档。我可以灵活地选择我想要的任何云提供商。

我选择了选项 2,使用 Google Drive 云服务,并在本文中分享您也可以使用的方法。

如何操作

这个想法很简单:每当 Obsidian 退出时,使用obsidian-shellcommands shell 插件运行自定义脚本。此事件是可配置的,但我发现应用程序退出事件对我的用例具有必要的周期性,因为我经常偶尔打开 Obsidian,在上面写字,然后立即退出应用程序。

步骤 1. 加密并备份所有笔记的自定义脚本

首先,将以下脚本保存到计算机中的文件夹中(例如,/Users/yourunixname/backups/my_backup_script.sh),并使用您自己的 Obsidian、备份目标文件夹和您自己的存档密码对其进行更新:

/bin/zsh #!/bin/zsh 复制代码

obsidian_notes_folder="<your_obsidian_folder>" ; # 例如,/Users/yourusername/Library/Application Support/obsidian
obsidian_notes_tar_archive="${obsidian_notes_folder}/obsidian_backup.tar.gz" ;
backup_folder="<folder_where_the_final_encrypted_backup_will_be_placed>"; # 例如,/Users/yourusername/Library/CloudStorage/GoogleDrive/MyDrive/backup_folder

echo "开始压缩黑曜石音符..." ;

# 创建一个包含 obsidian 文件夹内所有内容的 .tar 档案
tar -czf ${obsidian_notes_tar_archive} ${obsidian_notes_folder}/obsidian_backup

# 将 .tar 档案压缩为加密的 .7z 文件,密码为“PasswordOfYourChoosing”
# 在此示例中,使用了从 nix 包管理器 (https://nixos.org/) 安装的 7za,但您可以使用来自任何其他信誉良好的来源的 7za
/Users/你的用户名/.nix-profile/bin/7za a -tzip -mem=AES256 -mx=0 -mmt=12 -pPasswordOfYourChoosing ${obsidian_notes_folder}/obsidian_backup.7z ${obsidian_notes_tar_archive} ;

# 将 .7z 文件移动到备份文件夹(例如您的 Google Drive / Dropbox / OneDrive 文件夹)
mv ${obsidian_notes_folder}/obsidian_backup.7z ${backup_folder}/obsidian_backup.7z;

echo “压缩完成并移至备份文件夹”

(从 GitHub Gists下载此脚本)

这些注释大部分都是不言自明的,但本质上这就是脚本的作用:

  1. 首先创建一个包含 obsidian 文件夹内所有内容的 .tar 档案
  2. 将 .tar 存档压缩为密码加密.7z文件。记得用你自己的私人密码更新密码
  3. 将文件移动.7z到目标文件夹,该文件夹可能是您选择的云存储同步文件夹使用的文件夹(例如您的 Google Drive/Dropbox/OneDrive 文件夹)。

由于最终文件名3.始终相同,因此它将被重写,但您的云存储同步可能会跟踪不同版本的变化,这可能会逐渐增加您的配额使用量。如果这是一个问题,只需使用您的云存储界面定期清除它们即可。

chmod +x <script_file_name>您可以通过授予脚本执行权限 ( ) 并运行 来测试您的脚本./<your_script_name>。您的最终加密存档应出现在最终backup_folder

第 2 步:在 Obsidian 退出时运行脚本

现在我们已经准备好了脚本,如果能在 Obsidian 发生特定事件(例如 Obsidian 退出时)时自动运行,我们的工作就会轻松很多。使用obsidian-shell 命令可以轻松在 Obsidian 发生特定事件时运行 shell 脚本。设置步骤如下:

1.前往 Obsidian -> 设置。然后选择“社区插件”选项。


1.1.在“社区插件”选项中,单击“浏览”。在那里,搜索“Shell”。您要安装的是Jarkko Linnanvirta 的 Shell 命令


2.插件安装完成后,再次转到 Obsidian -> 设置。您应该在左下角的“社区插件”窗格下看到一个名为“Shell 命令”的选项。单击它。


3.1.在“Shell 命令”插件中,选择“Shell 命令”选项卡,在其中单击“新建 shell 命令”,然后单击创建的行,单击其相应的齿轮图标。这将向您显示一个带有多个选项卡的新模式。

3.2.在此命令模式中,选择“环境”选项卡,然后在“默认 shell 命令”中插入类似以下内容:zsh /Users/yourunixname/backups/my_backup_script.sh。这假设您的脚本位于/Users/yourunixname/backups/my_backup_script.sh


3.3.仍在此命令模式中,选择“事件”选项卡。在那里,您可以选择何时执行脚本。例如,搜索“Obsidian quits”,然后启用它(右侧有一个切换按钮)


全部完成!执行这些步骤后,您的备份脚本将在您选择的时间运行,并且将创建加密备份并将其放置在您在上述步骤 1中选择的位置。 🎉


本文出自:https://lopespm.com/notes/2024/09/11/obsidian-backup.html

Subscribe: