终究还是用回了 Syncthing
我使用过的同步软件
我在很长一段时间里一直使用 Dropbox,MegaSync 也用过一段时间。至于为什么选择这两个,是因为主流网盘中提供 Linux 客户端的除了 PCloud 就只有这两个了。
起初我在用 Mega,因为我将密码管理器从 Bitwarden 更换为 KeePassXC,我想将密码库同步到手机上,但当时 KeePass2Android 不支持。现在虽然支持了,但还没完全支持,例如无法登录开启 2FA 的账号,而 KeePassDX 也用不了。Dropbox 支持在系统的文件选择器中选择文件,因此手机上的两个软件都可以支持。
不过我最终还是放弃了这两个云同步软件,只留下了 Syncthing。Syncthing 我其实一直在用,但之前都只是在电脑上使用。对于在手机上使用,我曾担心它会耗电,但后来发现这个担心是多余的。
批评 Dropbox
为什么要抛弃 Dropbox,那要从我给 Obsidian 写一个插件说起。Obsidian 的插件是用 JavaScript 编写的,每个 JS 项目都会有一坨 node_modules
,然后它把这个文件夹同步过去。
我以为在 GUI 里设置选择性同步可以忽略掉这个文件夹,但我搞错了。Dropbox 只能用一种很别扭的方式忽略一个文件夹:
# linux
attr -s com.dropbox.ignored -V 1 '/home/yourname/Dropbox (Personal)/YourFileName.pdf'
# windog
Set-Content -Path 'C:\Users\yourname\Dropbox(Personal)\YourFileName.pdf' -Stream com.dropbox.ignored -Value 1
这就没办法在文件创建之前忽略掉这个文件了,想忽略多个文件还要逐个操作。
而 syncthing 和 MEGA 只需要简单写个规则。
不止如此。。。
Dropbox 只能将本地的一个文件夹与服务器同步,但我不喜欢将一切都放到 ~/Dropbox。我希望能将 ~/Docs
与 %USERPROFILE%/Docs
,~/Books
与 D:/Books
同步。
Syncthing 和 Mega 都能做到。
在 Gnome 上 Dropbox 的托盘完全是坏的,这个问题存在了数年,虽然不知道是谁的锅,但只在 Dropbox 上遇到过。右键点击托盘图标打开菜单只能随缘,即便打开显示的状态也是不更新的,永远 “Connecting…”,当然实际上工作的。它只能作为设置页的入口。
同步相关的功能比 Syncthing 和 Mega 更匮乏,但占用内存却是最大的。
槽点这么多,那干脆不用了。我都不知道为什么忍了它这么久。
(说起来 MEGAsync 算是我较为满意的一个网盘了)
如何实现 3-2-1 备份
我使用同步软件的其中一个原因是希望实现 3-2-1 备份,以避免本地机器故障。所谓 3-2-1 备份策略,即保存三份数据备份,使用两种不同的存储介质,并确保至少有一份备份存储在异地。
为了实现这个策略,我采用了 Restic 进行定期备份。它支持数据加密和压缩快照。还可以调用 rclone 的服务作为远程 repo。
具体来说,我编写了一个定期执行的脚本,通过 Restic 进行备份操作。为了确保备份的安全性,我将备份库(repo)的密码存储在 Gnome Keyring 中。脚本会调用 secret-tool
从 Gnome Keyring 中取出密码,并用来解密备份库进行备份。
restic -r rclone:<remote>:/path/to/repo backup /path/to/data --password-command 'secret-tool lookup restic pass'