在 True NAS SCAlE 中使用云同步任务同步 OneDrive
前序
过去的几年里,一直在使用 M365 E5 开发者订阅 OneDrive 作为自己存储数据的网盘,毕竟相对于其他人各种重要的数据,我并没有什么值得保存的。(或许那些女菩萨也算?)
去年年中的时候,新配了一台主机,当时就所有考虑,选择了一个可以加装不少额外硬盘的机箱。加之最近对 NAS 有所感兴趣,所以购买了一块大容量的硬盘。
但,不论是网盘还是 NAS,都是存在各种各样的风险。比如 E5 订阅,前几个月开始大规模的封锁。我本人的一个账号已经挂了。再比如 NAS,也难免出现硬盘损坏等问题。
因此,为了防止这种事情发生,势必要对数据进行多重备份。
这里,我就简单的将 TrueNAS 与 OneDrive for Business 之间的备份操作说一说,以备记忆和分享。
2024 年 8 月 28 日更新,由于前一段时间升级到了 SCAlE 24.04,发现凭据中,OneDrive 的选项已经被删除了,所以此备份方式已经失效。且使用过程中,体验不太好,也不建议再使用此方式备份。
添加备份凭据
由于我自己是拥有 M365 E5 开发者订阅的账户,所以对于其他订阅的人来说可略微参考。
登录到 TrueNAS 后,选择左侧的证书>备份凭据,

点击云凭据的添加,输入一个凭据名称,并选择提供服务商,Microsoft OneDrive,然后直接登录,再弹出的窗口中点击 Proceed,随后登录微软账户。这里直接按照它的步骤选项一步步走即可,登录微软账户后,客户端 ID/秘密/访问令牌,自动填充。

值得注意的是,此处驱动器账户选择 BUSINESS,

然后浏览器切换到 OneDrive 的网页端,点击 F12,在调试器网络模块中,查找 token,并选择 socket.io 开头的字符串,将图中斜杠后打码并划线的字符串参数复制到 TrueNAS 的驱动器 ID 这个位置。

这里解释一下,在云凭据添加窗口,点按驱动器列表,会显示一个名为 LIBRARY 的驱动器,如果选择此驱动器会自动生成驱动器 ID。但是我的试验的时候发现,生成的驱动器 ID,关联的是我的 OneDrive SharePoint 的空间,与我想同步的位置不相同。所以,此处需要手动查找驱动器 ID 并添加。
添加云同步任务
在添加完凭据后,找到数据保护,在 Cloud Sync Tasks 中点击添加,

描述随便填写一个作为任务名称即可,凭据选择刚才我们添加的备份凭据,方向按照我们的需要进行选择,如果希望将云端数据同步到本地选择拉取,如果希望备份本地文件到云端选择推送。
文件夹选项是云端进行存储备份文件的目录,点击下面的箭头进行选择会从 OneDrive 中同步云端的文件结构,我们可以先去 OneDrive 中创建一个文件夹进行选择,也可以直接填写一个文件夹名进去。
传输模式可以选择复制、迁移和同步。根据介绍,同步为本地在推送或拉取中,与云端保持一致。因为推送和拉取是单线操作,所以并不会双向同步,且在实际操作中发现,不会因为云端的数据比本地更新而保持最新状态,只会死板的保持一致,遇到重复文件既覆盖。我因为后面要选择加密,因此只进行复制。迁移的话会把本地删除而并非进行备份,因此不要选。
目录/文件则是选择本地需要备份到云端的目录,可以选 /mnt 将整个本地文件进行备份,也可以选择下属具体的目录,我自己的同步任务则是只选择了 NAS 文件的数据集位置。
下滑,下面有一个远程加密的选项,建议勾选远程加密和文件名加密可以保证云端无法访问到具体的数据。下面的密码和盐随便填一个然后记住即可。
Schedule 是备份定时,用的是 corn 语法,可以进行自定义。
全部结束后选择保存。

此时,就可以在 Cloud Sync Tasks 中找到刚添加的同步任务了,可以等待定时任务触发,也可以点击右边的开始按钮手动触发。

至此,备份同步工作就完成了。如果出现数据损坏的情况,我们只需要替换掉硬盘重建完阵列后,点击这里的恢复按钮即可。