文章

使用免费云盘作为机械硬盘的第二个保障

使用免费云盘作为机械硬盘的第二个保障

背景

别人都在组这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:查看是否挂载成功:

image-20250815221623514

挂载后我们还需要再次套娃挂载一个加密类型的网盘,再次使用rclone config,这次添加类型为加密远程:

1
2
13 / Encrypt/Decrypt a remote
   \ (crypt)

输入一下路径,选择openlist下的文件夹,可以先行创建一个子文件夹,例如我创建的是data,那就是:

1
openlist:/data

image-20250815222040185

然后需要输入两个密码,可以直接使用默认随机的密码,都要保存好,用于恢复数据。

设置自动同步

先用使用命令同步测试(--transfers 1参数防止出现Failed to copy: object not found错误,但是单线程速度会慢些,夜间上传无所谓了)。

1
rclone sync /data/doc encrypted_quark:/doc -P --transfers 1

去夸克网盘查看一下已经上传了:

image-20250815222248226

如果没有问题的话使用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

本文由作者按照 CC BY 4.0 进行授权