什么是 rclone

rclone 是一个命令行程序,用于管理云存储上的文件。它是云供应商的网络存储接口的一个功能丰富的替代品。超过 40 种云存储产品支持 rclone,包括 S3 对象存储、企业和消费者文件存储服务以及标准传输协议。

用户称 rclone 为“云存储的瑞士军刀”、 “无异于魔法的科技”。
rclone 具有强大的云等同于 unix 命令 rsync、cp、mv、mount、ls、ncdu、tree、rm 和 cat。rclone 熟悉的语法包括 shell 管道支持和–dry-run 保护。它在命令行、脚本或通过其 API 使用。

rclone 多种文件传输协议,支持 SFTP,HTTP,WebDAV,FTP 和 DLNA。rclone 是一个成熟的开源软件,最初受 rsync 的启发并采用 Golang 编写。其文档和社区也都非常好,提供广泛和友好的使用用例。

rclone 官网

rclone 功能

rclone 支持但不仅限于下面列出功能:

  • 将文件备份(和加密)到云存储
  • 从云存储恢复(和解密)文件
  • 将云数据镜像到其他云服务或本地
  • 将数据迁移到云端,或在云存储供应商之间迁移
  • 将多个、加密、缓存或多样化的云存储挂载为磁盘
  • 使用 lsf、ljson、size、ncdu 分析和说明云存储上保存的数据
  • 联合文件系统一起呈现多个本地和/或云文件系统作为一个

但一般用的最多的功能就是备份文件,同步文件。

特性

  • 接送服务
    • 始终检查 MD5、SHA1 哈希值以确保文件完整性
    • 时间戳保留在文件中
    • 可以随时重新启动操作
    • 可以进出网络,例如两个不同的云提供商
    • 可以使用多线程下载到本地磁盘
  • 将新文件或更改的文件复制到云存储
  • 同步(一种方式)使目录相同
  • 验证后将文件移动到云存储删除本地
  • 检查哈希和丢失/额外的文件
  • 将您的云存储挂载为网络磁盘
  • 通过 HTTP / WebDav / FTP / SFTP / DLNA 服务本地或远程文件
  • 实验性基于 Web 的 GUI

使用

安装

rclone 就是一个二进制文件包,可以直接下载设置环境变量即可使用,这里直接使用官方的脚本安装,本次的安装环境为 Ubuntu23.10

1
2
3
4
5
6
7
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64

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

安装之后可以用 rclone version 来查看版本号。

配置

配置可以直接添加配置文件的方式或者通过进入交互式配置会话命令一步步的完成配置。
默认配置完成的后配置文件都保存在:/root/.config/rclone/rclone.conf 目录下。

比如使用腾讯 COS 作为存储,可以直接编辑文件 /root/.config/rclone/rclone.conf
配置文件示例:

1
2
3
4
5
6
7
[tencent-cos] # 自定义的名称
type = s3 # 存储类型,参考官方文档所有支持的类型
provider = TencentCOS # 提供商,参考官方文档或者全部
env_auth = false # 不通过环境变量配置认证
access_key_id = AKxxxxxxxx # 腾讯云后台生成的密钥key
secret_access_key = Secretxxxxxxx # 腾讯云后台生成的密钥secret
endpoint = cos.ap-chengdu.myqcloud.com # 腾讯云cos所在的地区,看你所在存储桶的公网地址

常用命令

1
2
3
4
5
6
7
8
# 本地到网盘
rclone [功能选项] <本地路径> <配置名称:路径> [参数] [参数]
# 网盘到本地
rclone [功能选项] <配置名称:路径> <本地路径> [参数] [参数]
# 网盘到网盘
rclone [功能选项] <配置名称:路径> <配置名称:路径> [参数] [参数]

# [参数]为可选项

以下是一些示例:

1
2
3
4
5
# 同步本地/data/file的文件夹内容到tencent-cos存储下的/beifen文件夹中,并且排除/root/excludes.txt中指定的文件内容
rclone sync /data/file tencent-cos:/beifen --exclude-from '/root/excludes.txt'

# 两个网盘文件同步
rclone sync 配置网盘名称1:网盘路径 配置网盘名称2:网盘路径

其他命令

可以使用 rclone --help 查看

命令 说明
rclone copy 复制
rclone move 移动,如果要在移动后删除空源目录,加上 --delete-empty-src-dirs 参数
rclone mount 挂载
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 显示实时传输进度,500 ms 刷新一次,否则默认 1 分钟刷新一次
–cache-chunk-size 5M 块的大小,默认 5M 越大上传越快,占用内存越多,太大可能会导致进程中断
–onedrive-chunk-size 100M 提高 OneDrive 上传速度适用于 G 口宽带服务器
–drive-chunk-size 64M 提高 Google Drive 上传速度适用于 G 口宽带服务器
–cache-chunk-total-size SizeSuffix 块可以在本地磁盘上占用的总大小
–transfers=N 并行文件数,默认为 4。在比较小的内存的 VPS 上建议调小这个参数,比如 128M 的小鸡上使用建议设置为 1
–config string 指定配置文件路径,string 为配置文件路径
–ignore-errors 跳过错误
–size-only 根据文件大小校验,不校验 hash
–drive-server-side-across-configs 服务端对服务端传输

环境变量

命令 说明
rclone_CONFIG 自定义配置文件路径
rclone_CONFIG_PASS 若 rclone 进行了加密设置,把此环境变量设置为密码,可自动解密配置文件
rclone_RETRIES 上传失败重试次数,默认 3
rclone_RETRIES_SLEEP 上传失败重试等待时间,默认禁用,单位 s、m、h 分别代表秒、分钟、小时
CLONE_TRANSFERS 并行上传文件数
rclone_CACHE_CHUNK_SIZE 块的大小
rclone_CACHE_CHUNK_TOTAL_SIZE 块可以在本地磁盘上占用的总大小
rclone_IGNORE_ERRORS=true 跳过错误