Rclone教程
前言
Rclone 是一个的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。并且通过一些设置可以实现离线下载、服务器备份等非常实用的功能。本篇文章将讲解 Rclone 常用的一些命令参数。
安装 Rclone
Linux/macOS/BSD
官方提供了一键安装脚本:
curl https://rclone.org/install.sh | sudo bashWindows
Rclone 设置
rclone config - 进入交互式配置选项,进行添加、删除、管理网盘等操作。详细操作参见:《Rclone 安装配置教程》
rclone config file` - 显示配置文件的路径,一般配置文件在 `~/.config/rclone/rclone.confrclone config show - 显示配置文件信息
命令语法
# 本地到网盘
rclone [功能选项] <本地路径> <网盘名称:路径> [参数] [参数] ...
# 网盘到本地
rclone [功能选项] <网盘名称:路径> <本地路径> [参数] [参数] ...
# 网盘到网盘
rclone [功能选项] <网盘名称:路径> <网盘名称:路径> [参数] [参数] ...用法示例
rclone move -v /Download Onedrive:/Download --transfers=1常用功能选项
rclone copy- 复制rclone move- 移动,如果要在移动后删除空源目录,请加上--delete-empty-src-dirs参数rclone sync- 同步:将源目录同步到目标目录,只更改目标目录。rclone size- 查看网盘文件占用大小。rclone delete- 删除路径下的文件内容。rclone purge- 删除路径及其所有文件内容。rclone mkdir- 创建目录。rclone rmdir- 删除目录。rclone rmdirs- 删除指定灵境下的空目录。如果加上--leave-root参数,则不会删除根目录。rclone check- 检查源和目的地址数据是否匹配。rclone ls- 列出指定路径下的所有的文件以及文件大小和路径。rclone lsl- 比上面多一个显示上传时间。rclone lsd列出指定路径下的目录rclone lsf- 列出指定路径下的目录和文件
常用参数
-n=--dry-run- 测试运行,用来查看 rclone 在实际运行中会进行哪些操作。-P=--progress- 显示实时传输进度,500mS 刷新一次,否则默认 1 分钟刷新一次。--cache-chunk-size SizeSuffi- 块的大小,默认5M,理论上是越大上传速度越快,同时占用内存也越多。如果设置得太大,可能会导致进程中断。--cache-chunk-total-size SizeSuffix- 块可以在本地磁盘上占用的总大小,默认10G。--transfers=N- 并行文件数,默认为4。在比较小的内存的VPS上建议调小这个参数,比如128M的小鸡上使用建议设置为1。--config string- 指定配置文件路径,string为配置文件路径。--ignore-errors- 跳过错误。比如 OneDrive 在传了某些特殊文件后会提示Failed to copy: failed to open source object: malwareDetected: Malware detected,这会导致后续的传输任务被终止掉,此时就可以加上这个参数跳过错误。但需要注意 RCLONE 的退出状态码不会为0。
日志
rclone 有 4 个级别的日志记录,ERROR,NOTICE,INFO 和 DEBUG。默认情况下,rclone 将生成 ERROR 和 NOTICE 级别消息。
-q- rclone将仅生成ERROR消息。-v- rclone将生成ERROR,NOTICE和INFO消息,推荐此项。-vv- rclone 将生成ERROR,NOTICE,INFO和DEBUG消息。--log-level LEVEL- 标志控制日志级别。
输出日志到文件
使用 --log-file=FILE 选项,rclone 会将 Error,Info 和 Debug 消息以及标准错误重定向到 FILE,这里的 FILE 是你指定的日志文件路径。
另一种方法是使用系统的指向命令,比如:
rclone sync -v Onedrive:/DRIVEX Gdrive:/DRIVEX > "~/DRIVEX.log" 2>&1文件过滤
--exclude - 排除文件或目录。
--include - 包含文件或目录。
--filter - 文件过滤规则,相当于上面两个选项的其它使用方式。包含规则以 + 开头,排除规则以 - 开头。
文件类型过滤
比如 --exclude "*.bak"、--filter "- *.bak",排除所有 bak 文件。也可以写作。
比如 --include "*.{png,jpg}"、--filter "+ *.{png,jpg}",包含所有 png 和 jpg 文件,排除其他文件。
--delete-excluded 删除排除的文件。需配合过滤参数使用,否则无效。
目录过滤
目录过滤需要在目录名称后面加上 /,否则会被当做文件进行匹配。以 / 开头只会匹配根目录(指定目录下),否则匹配所目录。这同样适用于文件。
--exclude ".git/" 排除所有目录下的.git 目录。
--exclude "/.git/" 只排除根目录下的.git 目录。
--exclude "{Video,Software}/" 排除所有目录下的 Video 和 Software 目录。
--exclude "/{Video,Software}/" 只排除根目录下的 Video 和 Software 目录。
--include "/{Video,Software}/**" 仅包含根目录下的 Video 和 Software 目录的所有内容。
文件大小过滤
默认大小单位为 kBytes ,但可以使用 k ,M 或 G 后缀。
--min-size 过滤小于指定大小的文件。比如 --min-size 50 表示不会传输小于 50k 的文件。
--max-size 过滤大于指定大小的文件。比如 --max-size 1G 表示不会传输大于 1G 的文件。
TIPS: 博主在实际使用中发现大小过滤两个选项不能同时使用。
过滤规则文件
--filter-from <规则文件> 从文件添加包含 / 排除规则。比如 --filter-from filter-file.txt。
过滤规则文件示例:
- secret*.jpg
+ *.jpg
+ *.png
+ file2.avi
- /dir/Trash/**
+ /dir/**
- *这里只举例比较常用和简单的一些过滤用法,更复杂和高端的用法可以查看官方文档。
环境变量
rclone 中的每个选项都可以通过环境变量设置。环境变量的名称可以通过长选项名称进行转换,删除 -- 前缀,更改 - 为_,大写并添加前缀 RCLONE_。环境变量的优先级会低于命令行选项,即通过命令行追加相应的选项时会覆盖环境变量设定的值。
比如设置最小上传大小 --min-size 50,使用环境变量是 RCLONE_MIN_SIZE=50。当环境变量设置后,在命令行中使用 --min-size 100,那么此时环境变量的值就会被覆盖。
常用环境变量
RCLONE_CONFIG- 自定义配置文件路径RCLONE_CONFIG_PASS- 若 rclone 进行了加密设置,把此环境变量设置为密码,可自动解密配置文件。RCLONE_RETRIES- 上传失败重试次数,默认 3 次RCLONE_RETRIES_SLEEP- 上传失败重试等待时间,默认禁用,单位s、m、h分别代表秒、分钟、小时。CLONE_TRANSFERS- 并行上传文件数。RCLONE_CACHE_CHUNK_SIZE- 块的大小,默认5M,理论上是越大上传速度越快,同时占用内存也越多。如果设置得太大,可能会导致进程中断。RCLONE_CACHE_CHUNK_TOTAL_SIZE- 块可以在本地磁盘上占用的总大小,默认10G。RCLONE_IGNORE_ERRORS=true- 跳过错误。
Rclone 连接 OneDrive
获取 token
在本地 Windows 电脑上下载 rclone,然后解压出来,解压后进入文件夹,在资源管理器地址栏输入 cmd,回车就会在当前路径打开命令提示符。输入以下命令:
rclone authorize "onedrive"接下来会弹出浏览器,要求你登录账号进行授权。授权完后命令提示符窗口会出现以下信息:
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Paste the following into your remote machine --->
{"access_token":"xxxxxxxx"} # 注意!复制{xxxxxxxx}整个内容,并保存好,后面需要用到
<---End paste配置 Rclone
输入 rclone config 命令,会出现以下信息,按照要求操作即可。
Rclone 连接 Google Drive
与 OneDrive 不同的是,Google Drive 不需要本地 Windows 客户端预先进行授权获取 token,而是在配置过程中进行授权。
输入 rclone config 命令,会出现以下信息,按照要求操作即可。
TIPS: 因为 RCLONE 会时不时进行更新,当你看到这篇教程时菜单选项可能已经发生了略微的改动,但大致思路不会变,不要无脑照搬操作。
参考资料
个人常用命令
rclone copy FROM-PATH TO-PATH -P --transfers=5
## 例如我想将/AAA文件夹下的内容传到onedrive下的/BBB文件夹为:
rclone copy /AAA onedrive:BBB -P --transfers=5
rclone lsf onedrive: ##查看文件:问题
当在Win上配置Rcloneu挂载Google Drive时,到最后一步配置失败,及配置完成后使用命令挂在不出来网盘的问题。
① rclone配置到最后一步报错
Failed to configure token: failed to get token: Post https://oauth2.googleapis.com/token: dial tcp 172.217.160.106:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
② 执行挂载命令mount之后,本地没有磁盘的显示,即挂载不出网盘来

主要原因都是由于没有正确设置proxy导致,由于某些原因,访问Google需要设置proxy才行,这里的proxy不是用工具找个小鸡,然后开全局或者PAC,这样虽然实现了浏览器或者浏览网页时的无障碍功能,但是,由于我们是在命令窗口进行操作的,而问题①报错是命令窗口没能从一个站点get到token而导致的报错。所以,要解决这个问题,只需要让命令窗口实现proxy功能即可。同理,问题②同样也是因为没有设置proxy而连接不到Googledrive服务器来获取数据。因此,我们主要解决的问题就是Windows黑窗口/powershell/cmd中如何设置proxy。
解决方法
测试
在窗口输入
curl www.google.com,结果是行不通的,说明我们的窗户还没有“打开”Windows命令行设置Proxy
依次输入以下内容:
set http_proxy=http://你的代理地址:端口号 set https_proxy=http://你的代理地址:端口号 **注意:这里仍然设置为http,而不是https**如何查看自己的代理地址和端口号呢?【同样适用于其他的网盘映射工具如RaiDrive等的代理地址的填写】
首先打开proxy,不管是全局还是PAC,只要能够实现科学的上网就行【必须保证能出去才行】。之后win中,打开所有设置---->网络和Internet---->代理---->右侧就可以看到自己的代理地址以及端口号了。
设置完成后,我们再测试一下: curl www.google.com

可以看到,已经成功获取到了数据,说明我们已经成功实现proxy了。 之后再进行rclone的设置就可以成功了。
Tips
①:注意:这个设置proxy只是临时的,仅限当前命令窗口,也就是说,当我们关闭了窗口,对应我们设置的proxy也会 消失,还需要重新设置代理才行,所以,建议成功设置代理后不要关闭当前窗口
②:我们可以在.bat文件里直接将【win开窗】命令写上,这样就不用每次进行手动设置了,一劳永逸。
③:由于我主要使用的工具客户端时clash猫,看了很多网上的教程,网上教程多数都是127.0.0.1:1080的设置,自己试了根本不行。后来才发现clash猫有自己的端口,修改之后就可以了。1080端口是小飞机默认端口,如果你现在使用的是小飞机,就可以设置成1080了。
- 感谢你赐予我前进的力量

