使用免费云盘作为机械硬盘的第二个保障
背景
别人都在组这raid那raid,我只有一块买软路由别人送的1T机械硬盘,容量是还好够我用,但是始终不敢存重要数据,之前会同步一份数据到阿里云的OSS上,但是数据量上来了的话费用也是一笔不小的开支,于是有了通过OpenList(原Alist的替代品)挂载任意网盘(我使用的是夸克网盘,88VIP送6T空间),然后共享WebDav供rclone挂载,再通过rclone的同步功能每日夜间定时加密同步到网盘。可以实现:
- 存在网盘中的数据是加密的状态,避免网盘泄露数据
- 可以实现差异备份,相比加密压缩上传更快速
- 本地磁盘损害后可以恢复数据
由于网盘只是作为备份使用,大部分场景都是上传,而上传一般都没有什么限速,只有在硬盘损坏的时候才需要下载所有数据进行恢复,这就完美的避开了网盘限下载速度的缺点。
教程
安装OpenList挂载网盘到本地
首先你需要安装docker,然后编写docker-compose.yml如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
services:
openlist:
restart: always
volumes:
- './docker-data/openlist:/opt/openlist/data'
ports:
- '5244:5244'
- '5245:5245'
environment:
- PUID=0
- PGID=0
- UMASK=022
- TZ=UTC
container_name: openlist
image: 'openlistteam/openlist:latest'
使用docker-compopse up -d
启动即可。
挂载OpenList中的网盘
通过OpenList提供的webdav服务,借助rclone挂载到本地,如果没有安装rclone,需要先安装,可以参考【rclone+crontab】,安装好之后使用rclone config
挂载类型为的网盘:
1
2
55 / WebDAV
\ (webdav)
使用rclone ls openlist:
查看是否挂载成功:
挂载后我们还需要再次套娃挂载一个加密类型的网盘,再次使用rclone config
,这次添加类型为加密远程:
1
2
13 / Encrypt/Decrypt a remote
\ (crypt)
输入一下路径,选择openlist下的文件夹,可以先行创建一个子文件夹,例如我创建的是data,那就是:
1
openlist:/data
然后需要输入两个密码,可以直接使用默认随机的密码,都要保存好,用于恢复数据。
设置自动同步
先用使用命令同步测试(--transfers 1
参数防止出现Failed to copy: object not found
错误,但是单线程速度会慢些,夜间上传无所谓了)。
1
rclone sync /data/doc encrypted_quark:/doc -P --transfers 1
去夸克网盘查看一下已经上传了:
如果没有问题的话使用crontab创建一个定时任务即可,把-P
参数去掉静默运行。输入命令crontab -e
,然后添加定时任务:
1
0 2 * * * rclone sync /data/doc encrypted_quark:/doc --transfers 1
注意事项
大文件反复上传
解决方案:https://github.com/AlistGo/alist/discussions/4859#discussioncomment-6678769