Rclone 安装与使用

Rclone 是一个命令行程序,用于管理云存储上的文件,打包了各大供应商云存储的接口,提供统一的访问界面。rclone 支持 40 多种云存储产品,包括对象存储、企业和消费者文件存储、服务以及标准传输协议。Rclone 符合 unix POSIX 规范,支持与常见的 shell 工具(rsync、cp、mv、mount、ls、ncdu、tree、rm 和 cat)交互。Rclone 使用我们耳熟能详的语法,支持 shell 管道,支持 --dry-run 保护,同时为了保护数据的可靠性,Rclone 可保留时间戳并始终进行文件验证校验和。Rclone 支持多种文件传输协议:SFTP、HTTP、WebDAV、FTP 和 DLNA。Rclone 是一个成熟的开源软件,最初受 rsync 的启发并采用 Golang 编写,其文档和社区也都非常好,提供广泛和友好的使用用例。

安装

Script installation

To install rclone on Linux/macOS/BSD systems, run:

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

For beta installation, run:

sudo -v ; curl https://rclone.org/install.sh | sudo bash -s beta

Note that this script checks the version of rclone installed first and won’t re-download if not needed.

Linux installation

Precompiled binary

Fetch and unpack

curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64

Copy binary file

sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone

Install manpage

sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1/
sudo mandb

Run rclone config to setup. See rclone config docs for more details.

rclone config

设置

命令说明
rclone config添加、删除、管理网盘等操作
rclone config file显示配置文件的路径
rclone config show显示配置文件信息
root@SunPma:~# rclone config
Current remotes:

Name                 Type
====                 ====
DB                 dropbox
GD                 drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>

语法

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

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

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

# [参数]为可选项

示例

# 复制到网盘,并显示实时传输进度,设置并行上传数为8

rclone copy -P /home/SunPma GD:/home/SunPma --transfers=8

# 如果需要服务端对服务端的传输可加以下参数(不消耗本地流量)

rclone copy 配置名称:网盘路径 配置名称:网盘路径 --drive-server-side-across-configs

功能

命令说明
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 5M块的大小,默认 5M,越大上传越快,占用内存越多,太大可能会导致进程中断
--onedrive-chunk-size 100M提高 OneDrive 上传速度,适用于 G 口宽带服务器(默认为 320KB)
--drive-chunk-size 64M提高 Google Drive 上传速度,适用于 G 口宽带服务器(默认为 8M)
--cache-chunk-total-size SizeSuffix块可以在本地磁盘上占用的总大小,默认 10G
--transfers=N并行文件数,默认为 4
--config string指定配置文件路径,string 为配置文件路径
--ignore-errors跳过错误
--size-only根据文件大小校验,不校验 hash
--drive-server-side-across-configs服务端对服务端传输

日志

有 4 个级别的日志记录:ERROR NOTICE INFO DEBUG 默认情况下 Rclone 将生成 ERROR NOTICE 日志

命令说明
-qrclone 将仅生成 ERROR 消息
-vrclone 将生成 ERROR NOTICE INFO 消息
-vvrclone 将生成 ERROR NOTICE INFO DEBUG 消息
--log-level LEVEL标志控制日志级别

输出日志到文件

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

过滤

命令说明
--exclude排除文件或目录
--include包含文件或目录
--filter文件过滤规则,相当于上面两个选项的其它使用方式。包含规则以 + 开头,排除规则以 - 开头

文件类型过滤

  • 例如 --exclude "*.bak" --filter "- *.bak" 排除所有 bak 文件
  • 例如 --include "*.{png,jpg}" --filter "+ *.{png,jpg}" 包含所有 pngjpg 文件,排除其他文件
  • 例如 --delete-excluded 删除排除的文件。需配合过滤参数使用,否则无效

目录过滤

目录过滤需要在目录名称后面加上 /,否则会被当做文件进行匹配。以 / 开头只会匹配根目录(指定目录下),否则匹配所有目录,这同样适用于文件。

  • --exclude ".git/" 排除所有目录下的 .git 目录
  • --exclude "/.git/" 只排除根目录下的 .git 目录
  • --exclude "{Video,Software}/" 排除所有目录下的 VideoSoftware 目录
  • --exclude "/{Video,Software}/" 只排除根目录下的 VideoSoftware 目录
  • --include "/{Video,Software}/**" 仅包含根目录下的 VideoSoftware 目录的所有内容

大小过滤

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

  • --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 中的每个选项都可以通过环境变量设置。环境变量的名称可以通过长选项名称进行转换:删除 -- 前缀、更改 -_、大写并添加前缀 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 分别代表秒、分钟、小时
RCLONE_TRANSFERS并行上传文件数
RCLONE_CACHE_CHUNK_SIZE块的大小,默认 5M
RCLONE_CACHE_CHUNK_TOTAL_SIZE块可以在本地磁盘上占用的总大小,默认 10G
RCLONE_IGNORE_ERRORS=true跳过错误

验证与自查

  1. rclone version 正常输出版本号
  2. rclone config show 能看到已配置的远程(remote)及其类型
  3. rclone lsd <配置名称>: 能列出网盘根目录内容
  4. 实际传输前先用 rclone copy --dry-run 试运行,确认将执行的操作符合预期

参考