rclone 是一个命令行程序,支持 Windows、Linux、MacOS 等操作系统,可挂载多达 40 多种网盘网络存储,老头一直在用它来备份 Google Photos 到 OneDrive,隔壁大佬 xiaoz 新写了篇文章介绍 rclone 的一些说明和注意事项(优化)。挺实用,就贴过来了。
安装 rclone
rclone官网:https://rclone.org
这篇文章以 CentOS 7 为例,下面命令均在 CentOS 7 执行。rclone 使用 Golang 开发,官方已经编译好二进制包,安装非常简便,执行一条命令即可:
#安装 rclone
curl https://rclone.org/install.sh | sudo bash
如果是生产或者比较重要的环境,建议创建一个单独用户来运行 rclone,这里不做详细介绍。安装完成后,执行命令 rclone -V 查看当前版本:
rclone -V
会得到类似信息:
rclone v1.53.3
- os/arch: linux/amd64
- go version: go1.15.5
VPS 机器配置
通常做法一般是在 VPS 小鸡上安装 rclone 并挂载各种云存储(如 OneDrive)。rclone 通过网络挂载方式将云存储挂载到本地机器,性能和稳定性比不上本地磁盘。
另外在使用过程中可能会出现 rclone 占用 CPU、内存过高等情况,这个与 VPS 本身性能以及 rclone 配置有一定关系,个人使用,建议配置为:
CPU:2核
内存:1Gb以上
磁盘:不低于30Gb
rclone 挂载参数
rclone 挂载依赖于 fuse,需要先安装好:
#CentOS 7安装fuse
yum -y install fuse
这里已经挂载(配置)了 OneDrive,并将名称命名为 od,可通过 rclone listremotes 命令查看:
rclone listremotes
rclone 配置文件位于 $HOME/.config/rclone/rclone.conf,其中 $HOME 为用户目录。
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:od 为配置好的 OneDrive,od:/file 是 OneDrive 路径
- /data/wwwroot/xxx:为 PS 本地文件夹路径(建议为空目录)
- --allow-other:允许非当前 rclone 用户外其它用户进行访问
- --attr-timeout 5m:文件属性缓存,(大小,修改时间等)的时间。如果 VPS 配置比较低,建议适当提高这个值,避免过多内核交互,降低资源占用。
- -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:指后台方式运行
可根据 VPS 实际配置来适当调整,以免 rclone 占用过多 CPU或者内存。更多参数说明,可参考 rclone 官方文档。
rclone 取消挂载
通常情况,直接使用 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
总结
- 重要 VPS 环境,建议单独创建 rclone 用户来运行
- rclone 缓存目录建议设置为非系统分区(/)
- 如果 VPS 配置较低,请降低文件缓存和内存缓存
- 建议添加 --allow-other 参数,否则部分程序可能会出现不可读(无权限)情况
- rclone 可让小鸡秒变大盘鸡,但是得根据实际合理配置参数,让其发挥出最佳性能。
Comments:0