UtopiaXC Blog - NAS
type: channel
link: https://blog.utopiaxc.com/tag/NAS/
items: 使用OneDrive For Business 同步TrueNAS Scale的数据

使用OneDrive For Business 同步TrueNAS Scale的数据
type: item
date: 2023-01-07T12:25:00+08:00
description: 前序我们常说，对于数据安全，要符合3-2-1原则，即三份数据，两种介质，一份异地。对于家用NAS，可能由于硬盘损坏，突然断电等不可预知因素导致数据丢失。虽然我现在用的是TrueNAS Scale的ZFS对数据进行存储，采用Raid Z也就是Raid 5软阵列，但是当一块盘损坏的时候进行阵列重建导致拖垮其他硬盘的情况也屡见不鲜。因此，为了防止这种事情发生，遵循3-2-1原则，我选择采用OneDrive对数据进行备份。这里我将我的数据分为两部分，一部分是重要数据，比如我的合同备份，电子版发票，证书等信息。另一部分不那么重要的比如电影电视剧等。重要数据我采用的是NAS进行存储，通过脚本定时备份到一台大盘鸡上，然后通过TrueNAS自动备份到OneDrive上。至于电影之类的不那么重要的数据，则只上传到OD上即可。创建微软账户微软账户的选择上，我选择使用E5开发者账户，目前我的开发者已经续了三年了，用起来还蛮稳的，因此仅作为备份我觉得可以接受，主要是不管是世纪互联还是国际商业版要是想备份超过10T的数据都得好几千一年了，属实是花不起这个钱。这里按照标准流程创建微软企业账户即可，登录https://admin.microsoft.com/Adminportal/Home#/users，然后添加用户，在许可证中分配一个许可就可以了。这里我们用Test作为演示。填写账户基本信息分配产品许可证可选设置中不用分配角色。直接下一步就可以获取用户ID这里有一个比较坑的地方，如果使用TrurNAS中添加凭据时候自动获取到的ID，保存的位置是DOCUMENT_LIBRARY，这个地方我一直没找到在哪，如果想备份到自己的OneDrive中的话，这里的用户ID必须自己获取。首先，我们登录到微软Graph Explorer，https://developer.microsoft.com/en-us/graph/graph-explorer。在未登录的情况下，这也页面也可以打开，不过数据是随机生成的，因此我们需要点击右上角的user图标进行登录。登录的时候可能会要求你添加手机号，点击跳过设置就可以了。成功登录后，点击Run query获取用户数据。在下方的json中，找到email确认是刚才创建的账户，然后复制下方的ID备用。添加同步凭证我们创建完账户并获取ID后，打开TrueNAS的管理后台，找到证书->备份凭据，点开。在Cloud Credentials中点击添加填写名称，提供者选择Microsoft OneDrive，然后点击登录供应商在新窗口中点击Proceed进行登录，完成登录后会自动把应用ID和机密补全。然后翻到最下面，这里驱动器列表我们不用管，默认的-------就行。驱动器类型选择BUSINESS，下面的驱动器ID填写上我们上一步中获取到的用户ID，点击验证凭据。凭据验证有效后点击保存。至此，备份凭据就添加完成了。需要注意的是，如果选择了自动获取的驱动器和ID，也是可以验证成功的，但是同步后会找不到文件同步到哪里去了，而且过一阵子会出现同步失败的问题，因此我们要采用这种方式获取ID。创建同步任务在添加完凭据后，找到数据保护，在Cloud Sync Tasks中点击添加这里的描述随便填写一个作为任务名称即可，凭据选择刚才我们添加的备份凭据，方向按照我们的需要进行选择，如果希望将云端数据同步到本地选择拉取，如果希望备份本地文件到云端选择推送。文件夹选项是云端进行存储备份文件的目录，点击下面的箭头进行选择会从OneDrive中同步云端的文件结构，我们可以先去OD中创建一个文件夹进行选择，也可以随便写一个文件夹名进去。传输模式可以选择复制迁移和同步，如果是希望双向保持一致选同步，我因为后面要选择加密，因此只进行复制。迁移的话会把本地删除而并非进行备份，因此不要选。目录/文件则是选择本地需要备份到云端的目录，可以选nmt将整个本地文件进行备份，但是由于我本地环境比较大，所以分文件夹同步到三个不同的微软账户上，因此可以选择下属具体的目录。这里我随便选了个小文件夹进行演示。然后往下翻，Schedule是备份定时，用的是corn语法，可以进行自定义。下面有一个远程加密的选项，如果不选择的话会直接将原文件复制到云端，但是由于我本地有一些类似于注册机的东西，会被微软识别为病毒而删除，因此选择远程加密和文件名加密可以保证云端无法访问到具体的数据。下面的密码和盐随便填一个然后记住即可。全部结束后选择保存。然后我们就可以在Cloud Sync Tasks中找到刚添加的同步任务了，可以等待定时任务触发，也可以点击右边的开始箭头手动触发。在OneDrive中查看同步完成后，我们打开OneDrive，登录到刚才我们注册的账号，就可以在刚才我们创建的同步文件夹中找到加密过的文件…