UNRAID使用rclone挂在alist网盘

时间:2024-10-07 14:54:51

UNRAID使用rclone挂在alist网盘

需求:考虑异地备份,将部分重要的资料上传至网盘,保证nas中的资料安全。
考虑:当然网盘备份存在安全性问题,后续也可以通过加密的方式进行上传,不过这是后话,有精力再说。
本内容:本博客记录使用rclone挂载alist的阿里云盘,进行基础数据备份。

一、alist设置

  1. 按照教程正常安装,挂载阿里云盘
    在这里插入图片描述
  2. 按照教程,webdav的目录为 http://192.168.10.120:5244/dav/阿里云盘,其中ip需要替换为自己的,阿里云盘替换为自己的名称。

二、unraid设置

  1. 安装插件版本rclone。

三、rclone设置

  1. 使用命令行rclone config创建一个新的远程连接,注意事项是选择webdav格式,名称我设置为aliyun,后面的连接需要使用aliyun:,即代表了上述的http://192.168.10.120:5244/dav/阿里云盘目录。
  2. 具体教程参考:最完整rclone挂载网盘到本地(Alist篇)解决方案
  3. 测试:使用命令rclone lsd aliyun:,注意这里有个冒号
    在这里插入图片描述
  4. 测试备份:rclone copy /mnt/user/win/中转/aaa_ego aliyun:test
    在这里插入图片描述
  5. 在rclone插件中也可以看到如下内容:
    在这里插入图片描述

四、rclone指令

以下是一些基本的 rclone 命令,用来管理文件和目录:

  • 列出文件:

    rclone ls MyDrive:folder
    
  • 同步本地目录到云存储:

    rclone sync /path/to/local/folder MyDrive:folder
    
  • 拷贝云存储中的文件到本地:

    rclone copy MyDrive:folder /path/to/local/folder
    
  • 移动文件:

    rclone move MyDrive:file1 MyDrive:folder/file2
    
  • 删除文件:

    rclone delete MyDrive:folder/file
    
  • 查看配置的存储:

    rclone lsd MyDrive:
    

五、定义备份设置

  1. 到此,使用user config插件,使用copy或sync命令进行备份即可。

六、挂载到unraid本地

步骤 1: 创建本地目录,用于映射到远程存储。

通过unraid共享,创建一个文件夹aliyun,其完整目录为/mnt/user/aliyun
在这里插入图片描述

步骤 2: 挂载远程存储

使用 rclone mount 命令将 aliyun 远程存储挂载到你的 Unraid 系统。使用以下命令:

rclone mount aliyun: /mnt/user/aliyun --allow-other --daemon

这里的选项解释:

  • aliyun::指定了你的远程存储配置名称和冒号,表示你要访问该远程存储的根目录。
  • /mnt/user/aliyun:本地系统上的挂载点路径。
  • --allow-other:允许所有用户访问这个挂载点。
  • --daemon:让 rclone 在后台作为守护进程运行。

另一篇博客给出了如下命令,对此进行分析合理性:

rclone mount aliyun: /mnt/user/aliyun --umask 0022 --default-permissions --allow-non-empty --allow-other --buffer-size 32M --low-level-retries 200 --dir-cache-time 2h --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G --vfs-cache-mode full &

这条 rclone 挂载指令的功能是将远程存储(这里使用 alist: 表示)挂载到本地文件系统的指定目录(/mnt/user/rclone/alist)。下面是该指令各个选项的具体说明:

  1. --umask 0022:设置文件和目录的权限掩码。这个设置确保新创建的文件和目录对拥有者具有读写权限,对拥有者所在的组和其他用户具有读取权限。

  2. --default-permissions:使 rclone 遵循内核的权限检查。这意味着,只有在你有足够权限的情况下,你才能访问这个挂载的目录和其中的文件。

  3. --allow-non-empty:允许挂载点目录非空。默认情况下,如果挂载点目录内有文件,rclone 会阻止挂载操作。此选项允许忽略此安全措施。

  4. --allow-other:允许除了 rclone 进程的用户之外的其他用户访问挂载的文件系统。

  5. --buffer-size 32M:为每个打开的文件设置 32 MB 的缓冲区大小。这有助于提高大文件的读写速度。

  6. --low-level-retries 200:设置在遇到低级别的传输错误时尝试重试的次数。这里设置的是200次,这意味着在放弃前,rclone 会尝试解决这些错误多达200次。

  7. --dir-cache-time 2h:设置目录列表的缓存时间为2小时。这减少了向远程服务器发送请求的频率,可以提高访问速度。

  8. --vfs-read-chunk-size 64M:设置 VFS 层每次从远程读取数据的块大小为64 MB。较大的块大小可以提高大文件的读取性能。

  9. --vfs-read-chunk-size-limit 1G:设置 VFS 读取块大小的上限为1 GB。随着读取的进行,块的大小会增长,直到这个限制。

  10. &:在命令的最后加上 &,表示在后台运行这个挂载操作,允许你继续在同一个终端进行其他操作。

这个指令非常适用于需要高效读写和频繁访问大文件的情况,同时还考虑到了系统的安全性和访问权限的管理。

步骤 3: 验证挂载

挂载完成后,你可以通过列出 /mnt/user/aliyun 目录的内容来检查是否挂载成功:

ls /mnt/user/aliyun

如果一切设置正确,应该能看到 aliyun 存储中的文件和文件夹。如下
在这里插入图片描述

步骤 4: 设置自动挂载

为了在每次 Unraid 启动时自动执行这个挂载,你可以将挂载命令添加到 Unraid 的 “User Scripts” 插件中,设置为在启动时运行。这样,每次系统启动后,就会自动挂载 aliyun 远程存储。如下,将上述指令加入即可。
在这里插入图片描述

5. 查看unraid共享文件

可以直接打开共享,很不错。空间显示有1.3PB,当然我的云盘肯定没有这么大,应该是显示了最大的空间而已。
在这里插入图片描述
可以直接
在这里插入图片描述

6. 测试:在unraid中操作文件

可以上传小的文件。
可以删除文件。
大的文件上传失败。
大的视频文件下载失败。
使用命令行cp指令:使用cp指令将文件夹备份到挂载目录,其中一个200M文件的内容正确被上传。

7. 安全卸载并重新挂载

如果你更改了挂载选项,确保先安全卸载之前的挂载:

fusermount -uz /mnt/user/aliyun

8. 备份文件

方式1:不挂载到本地,直接使用rclone指令进行备份
方式2:挂载到本地,使用cp等指令进行上传

七、使用 Jellyfin 直接播放网盘

参考链接:Unraid 使用 Jellyfin 直接播放网盘!

  1. 简易流程说明
    基于上述操作,挂载了阿里云盘的文件夹到本地,映射到jellyfin中,即可实现播放网盘视频。
  2. 但是我通过unraid的网络磁盘功能,在windows可以看到映射后的文件夹,但是无法播放内容,会报错。

八、总结

  1. 简单备份文件即可,太复杂的功能如网盘影视,受限于网盘权限或配置,导致目前难以解决。