当前位置: 首页 > 教程 > 心得 > 聊一聊Rclone挂载那些事儿

聊一聊Rclone挂载那些事儿

发布于:2020-12-27 心得 7条评论 24,825 views
本站提供Linux服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

Rclone是一个命令行程序,支持Windows、Linux、MacOS等多种系统,可挂载多达40多种网络存储,一款不可多得的挂载神器,用这篇文章来聊一聊Rclone的一些说明和注意事项。

安装Rclone

这篇文章以CentOS 7为例,下面命令均在CentOS 7执行。Rclone使用Golang进行开发,官方已经编译好二进制包,安装非常简便,执行如下一条命令即可:

#安装Rclone
curl https://rclone.org/install.sh | sudo bash

如果是生产或者比较重要的环境,建议创建一个单独的用户来运行Rclone,这篇文章不做详细介绍。安装完成后,执行命令rclone -V查看当前版本:

[root@bf-xiaoz ~]# rclone -V
rclone v1.53.3
- os/arch: linux/amd64
- go version: go1.15.5

机器配置

我们通常的做法,一般是在VPS小鸡上安装Rclone并挂载各种云存储(如OneDrive),这篇文章不对配置存储做介绍(假设您已经添加好存储)。Rclone通过网络挂载方式将云存储挂载到本地机器,既然是通过网络挂载,性能和稳定性自然比不上本地磁盘。

另外在使用过程中可能还会发现Rclone占用CPU、内存过高等情况,这个和机器本身性能以及Rclone配置有一定关系,如果是个人使用,建议的及其配置为:

  • CPU:2核
  • 内存:1Gb以上
  • 磁盘:不低于30Gb

挂载参数

Rclone挂载依赖于fuse,因此需要先安装:

#CentOS 7安装fuse
yum -y install fuse

这里我已经挂载了OneDrive存储,并将名称命名为od,可通过rclone listremotes命令查看到:

[rclone@bf-xiaoz rclone]$ rclone listremotes
od:

Rclone配置文件位于$HOME/.config/rclone/rclone.conf,其中$HOME为用户家目录。

[rclone@bf-xiaoz ~]$ ls -l $HOME/.config/rclone/rclone.conf
-rw------- 1 rclone rclone 1876 Dec 27 18:32 /home/rclone/.config/rclone/rclone.conf

Rclone缓存目录位于$HOME/.cache/rclone,如果您服务器挂载了额外的磁盘,建议将这个目录做软连接到非系统盘,避免Rclone使用中占用较多的系统磁盘。

下面我直接用自己的挂载命令来做说明:

#一条完整的Rclone挂载命令
rclone mount od:/file /data/wwwroot/xxx --allow-other --attr-timeout 5m --vfs-cache-mode full --vfs-cache-max-age 24h --vfs-cache-max-size 10G --vfs-read-chunk-size-limit 100M --buffer-size 100M --daemon

别被上面一串命令吓到,我们来拆分下,发现还是非常简单的:

  • rclone mount:是rclone挂载命令
  • od:/file:上面已经提到,xiaoz提前配置好了OneDrive,并将名称命名为odod:/file则是OneDrive上的路径
  • /data/wwwroot/xxx:为本地文件夹路径(建议为空目录)
  • --allow-other:指的是允许非当前Rclone用户外的用户进行访问
  • --attr-timeout 5m:文件属性缓存,(大小,修改时间等)的时间。如果小鸡配置比较低,建议适当提高这个值,避免过多的和内核交互,占用资源。
  • -vfs-cache-mode full:开启VFS文件缓存,这样可减少Rclone与API交互,同时可提高文件读写效率
  • --vfs-cache-max-age 24h:VFS文件缓存时间,这里设置的24小时,如果文件很少更改,建议设置更长的时间
  • --vfs-cache-max-size 10G:VFS文件缓存上限大小,建议不超过当前空余磁盘的50%
  • vfs-read-chunk-size-limit 100M:分块读取大小,这里设置的是100M,可提高文件读的效率,比如1G的文件,大致分为10个块进行读取,但与此同时API请求次数也会增多
  • --buffer-size 100M:内存缓存,如果您内存比较小,可降低此值,如果内存比较大,可适当提高
  • --daemon:指后台方式运行

了解了上面参数含义后,便可根据小鸡的配置来适当调整,以免Rclone发生CPU、内存莫名使用过多,而不知所措。更多参数说明,可参考官方文档:https://rclone.org/commands/rclone_mount/

取消挂载

通常情况,直接使用umount命令取消挂载即可:

#/path/to/local/mount为挂载目录
umount /path/to/local/mount

或者使用fusermount

fusermount -u /path/to/local/mount

如果提示磁盘繁忙,只能暴力kill杀掉进程了,命令为:

#kill杀掉进程
pgrep 'rclone'|xargs kill -9
#再次取消挂载
umount /path/to/local/mount

总结

  • 比较重要的环境,建议单独创建rclone用户来运行
  • Rclone缓存目录建议设置为非系统分区(/
  • 如果机器配置较低,请降低文件缓存和内存缓存
  • 建议添加--allow-other参数,否则可能发生部分程序不可读(无权限)的情况

Rclone可让小鸡秒变大盘鸡,但是也得合理配置参数,让其发挥出最佳性能,切记不要网上盲目复制粘贴参数,否则效果可能并不理想。

以上是xiaoz个人Rclone配置整理,并不代表最佳配置,仅供参考,如有不足或错误,还请留言指正。

Rclone官网:https://rclone.org/


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注


已有7条评论


  1. 您好,我用来迁移别人的资源,windows系统,怎么做到上传完成之后几秒删除或者山川完成之后删除呀,请大佬指点一下。