rclone 是一款强大的命令行工具,支持在本地与多种云存储之间进行高效的数据同步和迁移。本文将介绍 rclone 的安装、配置及常用操作方法,帮助你快速上手。

一、安装 rclone

1. 公网环境安装(以 Ubuntu 为例)

1
2
curl https://downloads.rclone.org/v1.67.0/rclone-v1.67.0-linux-amd64.deb -o rclone-v1.67.0-linux-amd64.deb
sudo dpkg -i rclone-v1.67.0-linux-amd64.deb

2. Mac 安装

1
brew install rclone

更多平台和安装方式可参考 rclone 官方下载页面

二、配置 rclone

rclone 的配置文件默认位于 ~/.config/rclone/rclone.conf。你可以手动创建和编辑该文件,或通过 rclone config 命令进行交互式配置。

1. 创建配置目录

1
mkdir -p ~/.config/rclone

2. 编辑配置文件

以下是一个典型的配置示例,支持 swift 和 s3 两种后端:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cat > ~/.config/rclone/rclone.conf << EOF
[ss-data]
type = swift
env_auth = false
user = ${STORAGE_USER}
key = ${STORAGE_PASSWORD}
auth = https://{SS_ENDPOINT}/auth/v1.0
auth_version = 1

[s3-data]
type = s3
env_auth = true
access_key_id = ${S3_ACCESS_ID}
secret_access_key = ${S3_SECRET_KEY}
region = us-east-1
endpoint = https://${S3_ENDPOINT}
EOF

请根据实际账号和密钥替换 ${STORAGE_USER}, ${STORAGE_PASSWORD},${S3_ACCESS_ID},${S3_SECRET_KEY} 等变量。

三、常用命令

1. 查看目录

1
rclone lsd ss-data:bucketname

2. 查看文件

1
rclone ls ss-data:bucketname/path/file.txt

3. 拷贝文件

将文件从一个存储拷贝到另一个存储:

1
rclone copy ss-data:bucketname/path/file.txt s3-data:bucketname2/path/ -P

4. 目录同步

rclone copy 拷贝文件

rclone copy 只会把源目录的内容复制到目标目录,不会删除目标目录中多余的文件。

1
rclone copy ./local_dir ss-data:bucketname/remote_dir -P --transfers=32 --checkers=32 --retries=8 --log-level INFO
  • -P
    显示进度条(progress),包括传输速度、已完成/剩余数据量、预计剩余时间等信息,便于实时观察任务进度。

  • –transfers=32
    同时进行的文件传输任务数,默认值通常为4。设置为32可以大幅提升并发传输能力,适合大量小文件或高带宽场景,但过高可能导致资源争用或被服务端限流。

  • –multi-thread-streams=16
    启用单个大文件的多线程分块并发传输,N 表示每个大文件使用的并发线程数(如 4、8、16 等)。

  • –buffer-size=128M
    主要作用于单个文件的流式传输,即每个并发传输任务分配的内存缓冲区。对于大文件,较大的 buffer 可以减少磁盘 I/O 等待、提升吞吐量。对于小文件,单个文件本身很小,往往一次就能读/写完,缓冲区很难被充分利用。

  • –checkers=32
    并发校验文件(如比对源和目标文件是否一致)的线程数。默认值通常为8。提高该值可以加快大批量文件的校验速度,适合大规模同步。

    场景 关键参数 说明
    大文件 –multi-thread-streams=8 单文件多线程分块传输
    –buffer-size=128M 提高单线程缓冲区
    –transfers=4 并发文件数适中
    小文件 –transfers=32 –checkers=32 提高并发数
    –buffer-size=默认 无需调大缓冲区
    –multi-thread-streams=0(默认) 无需多线程分块
  • –retries=8
    单个文件传输失败时的重试次数。默认值为3。设置为8可以增强在网络不稳定或偶发错误情况下的容错能力,减少因偶发错误导致的整体失败。

  • –log-level INFO
    设置日志输出级别为 INFO,显示一般性的信息、进度和警告。常用级别有 DEBUG、INFO、NOTICE、ERROR。INFO 适合日常使用,既能看到关键日志,又不会太冗杂。

  • –bwlimit 参数用于限制 rclone 的传输带宽速率,例如 –bwlimit=20M 表示将传输速度限制为每秒 20MB。
    该参数的作用:
    控制网络使用率:防止 rclone 占用全部可用带宽,确保其他网络应用仍能正常工作
    避免被服务商限流:某些云存储提供商会对高速持续传输进行限流,设置合理的带宽限制可以避免这种情况
    适应网络环境:在网络不稳定的情况下,适当限制带宽可能会提高整体传输的可靠性
    支持的单位:
    K 或 k:KB/s (千字节/秒)
    M 或 m:MB/s (兆字节/秒)
    G 或 g:GB/s (吉字节/秒)
    也可以设置时间段带宽限制,例如:

    1
    --bwlimit "08:00,10M 12:00,1M 18:00,5M 23:00,off"

    这会在不同时间段自动应用不同的带宽限制。

  • –s3-chunk-size:设置 S3 分片上传时每个分块的大小(默认通常为 5MB)

  • –s3-upload-concurrency:控制单个文件上传时并发上传的分块数量(默认通常为 4)
    当上传大文件到 S3 时,rclone 会:
    将文件分割成多个大小为 –s3-chunk-size 的块
    同时上传 –s3-upload-concurrency 个块
    增大 –s3-chunk-size 减少了分块数量,但每个块需要更多内存
    增大 –s3-upload-concurrency 提高并行度,但会增加内存和网络资源消耗

    场景 关键参数 说明
    快速网络环境 –s3-chunk-size=64M –s3-upload-concurrency=8 增大两个值可提高吞吐量
    内存受限环境 –s3-chunk-size=16M –s3-upload-concurrency=6 保持适中的块大小,适当增加并发数
    不稳定网络 –s3-chunk-size=8M –s3-upload-concurrency=4 较小的块大小和适中的并发数有助于错误恢复

rclone rsync 同步目录

rclone rsync 会让目标目录和源目录完全一致,即:目标中有但源中没有的文件会被删除,行为更接近 rsync 的 –delete。

1
rclone sync ./local_dir ss-data:bucketname/remote_dir -P

适用场景

  • rclone copy 适合做备份,不会误删目标端已有文件。
  • rclone sync 适合做镜像同步,但要小心目标端数据被删除。

四、更多参考

rclone 支持丰富的云存储后端和灵活的参数配置,适合多种数据迁移和备份场景。建议结合实际需求,查阅官方文档,发挥其最大效能。

本文由 AI 辅助生成,如有错误或建议,欢迎指出。