UNRAID使用rclone挂在alist网盘
需求:考虑异地备份,将部分重要的资料上传至网盘,保证nas中的资料安全。
考虑:当然网盘备份存在安全性问题,后续也可以通过加密的方式进行上传,不过这是后话,有精力再说。
本内容:本博客记录使用rclone挂载alist的阿里云盘,进行基础数据备份。
一、alist设置
- 按照教程正常安装,挂载阿里云盘
- 按照教程,webdav的目录为
http://192.168.10.120:5244/dav/阿里云盘
,其中ip需要替换为自己的,阿里云盘替换为自己的名称。
二、unraid设置
- 安装插件版本rclone。
三、rclone设置
- 使用命令行
rclone config
创建一个新的远程连接,注意事项是选择webdav格式,名称我设置为aliyun
,后面的连接需要使用aliyun:
,即代表了上述的http://192.168.10.120:5244/dav/阿里云盘
目录。 - 具体教程参考:最完整rclone挂载网盘到本地(Alist篇)解决方案
- 测试:使用命令
rclone lsd aliyun:
,注意这里有个冒号
- 测试备份:
rclone copy /mnt/user/win/中转/aaa_ego aliyun:test
- 在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:
五、定义备份设置
- 到此,使用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
)。下面是该指令各个选项的具体说明:
-
--umask 0022
:设置文件和目录的权限掩码。这个设置确保新创建的文件和目录对拥有者具有读写权限,对拥有者所在的组和其他用户具有读取权限。 -
--default-permissions
:使 rclone 遵循内核的权限检查。这意味着,只有在你有足够权限的情况下,你才能访问这个挂载的目录和其中的文件。 -
--allow-non-empty
:允许挂载点目录非空。默认情况下,如果挂载点目录内有文件,rclone 会阻止挂载操作。此选项允许忽略此安全措施。 -
--allow-other
:允许除了 rclone 进程的用户之外的其他用户访问挂载的文件系统。 -
--buffer-size 32M
:为每个打开的文件设置 32 MB 的缓冲区大小。这有助于提高大文件的读写速度。 -
--low-level-retries 200
:设置在遇到低级别的传输错误时尝试重试的次数。这里设置的是200次,这意味着在放弃前,rclone 会尝试解决这些错误多达200次。 -
--dir-cache-time 2h
:设置目录列表的缓存时间为2小时。这减少了向远程服务器发送请求的频率,可以提高访问速度。 -
--vfs-read-chunk-size 64M
:设置 VFS 层每次从远程读取数据的块大小为64 MB。较大的块大小可以提高大文件的读取性能。 -
--vfs-read-chunk-size-limit 1G
:设置 VFS 读取块大小的上限为1 GB。随着读取的进行,块的大小会增长,直到这个限制。 -
&
:在命令的最后加上&
,表示在后台运行这个挂载操作,允许你继续在同一个终端进行其他操作。
这个指令非常适用于需要高效读写和频繁访问大文件的情况,同时还考虑到了系统的安全性和访问权限的管理。
步骤 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 直接播放网盘!
- 简易流程说明
基于上述操作,挂载了阿里云盘的文件夹到本地,映射到jellyfin中,即可实现播放网盘视频。 - 但是我通过unraid的网络磁盘功能,在windows可以看到映射后的文件夹,但是无法播放内容,会报错。
八、总结
- 简单备份文件即可,太复杂的功能如网盘影视,受限于网盘权限或配置,导致目前难以解决。