简介

Rclone 是一个的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。

安装 Rclone

Linux/macOS/BSD

官方提供了一键安装脚本

curl https://rclone.org/install.sh | sudo bash

Windows

直接下载

设置

rclone config - 进入交互式配置选项,进行添加、删除、管理网盘等操作。详细操作参见:《Rclone 安装配置教程

rclone config file - 显示配置文件的路径,一般配置文件在 ~/.config/rclone/rclone.conf

rclone config show - 显示配置文件信息

命令语法

# 本地到网盘
rclone [功能选项] <本地路径> <网盘名称:路径> [参数] [参数] ...

# 网盘到本地
rclone [功能选项] <网盘名称:路径> <本地路径> [参数] [参数] ...

# 网盘到网盘
rclone [功能选项] <网盘名称:路径> <网盘名称:路径> [参数] [参数] ...

用法示例

rclone move -v /Download Onedrive:/Download --transfers=1

常用功能选项

rclone copy - 复制

rclone move - 移动,如果要在移动后删除空源目录,请加上 --delete-empty-src-dirs 参数

rclone sync - 同步:将源目录同步到目标目录,只更改目标目录。

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 - 显示实时传输进度。

--cache-chunk-size SizeSuffi - 块的大小,默认5M,理论上是越大上传速度越快,同时占用内存也越多。如果设置得太大,可能会导致进程中断。

--cache-chunk-total-size SizeSuffix - 块可以在本地磁盘上占用的总大小,默认10G。

--transfers=N - 并行文件数,默认为4。在比较小的内存的VPS上建议调小这个参数,比如128M的小鸡上使用建议设置为1。

--config string - 指定配置文件路径,string 为配置文件路径。比如在使用宝塔面板输入命令操作时可能会遇到找不到配置文件的问题,这时就需要指定配置文件路径。

日志

rclone有4个级别的日志记录,ERRORNOTICEINFODEBUG

默认情况下,rclone将生成 ERRORNOTICE 级别消息。

-q rclone将仅生成 ERROR 消息。

-v rclone将生成 ERRORNOTICEINFO 消息,推荐此项

-vv rclone将生成 ERRORNOTICEINFODEBUG 消息。

--log-level LEVEL 标志控制日志级别。

输出日志到文件

使用 --log-file=FILE 选项,rclone会将 ErrorInfoDebug 消息以及标准错误重定向到FILE,这里的FILE是你指定的日志文件路径。

另一种方法是使用系统的指向命令,比如:

rclone sync -v Onedrive:/DRIVEX Gdrive:/DRIVEX > "~/DRIVEX.log" 2>&1

文件过滤

--exclude 排除文件或目录。比如 --exclude *.bak,排除所有 bak 文件。

--include 包含文件或目录。比如 --include *.{png,jpg} ,包含所有 pngjpg 文件,排除其他文件。

--delete-excluded 删除排除的文件。需配合过滤参数使用,否则无效。

目录过滤

--exclude .git/ 排除所有目录下的 .git 目录。

--exclude /.git/ 只排除根目录下的 .git 目录。

/开头只会匹配根目录,而如果没有,则是匹配所目录。同样适用于文件。

文件大小过滤

默认大小单位为 kBytes ,但可以使用 kMG 后缀。

--min-size 过滤小于指定大小的文件。比如 --min-size 50 表示不会传输小于50k的文件。

--max-size 过滤大于指定大小的文件。比如 --max-size 1G 表示不会传输大于1G的文件。

文件过滤规则

--filter-from <规则文件> 从文件添加包含/排除规则。比如 --filter-from filter-file.txt

过滤规则文件示例:

- secret*.jpg
+ *.jpg
+ *.png
+ file2.avi
- /dir/Trash/**
+ /dir/**
- *

+ 是包含,- 是排除

这里只举例比较常用和简单的一些过滤用法,更复杂和高端的用法可以查看官方文档

参考资料

Rclone 官方文档