rclone使用教程
rclone 是一款强大的命令行工具,支持在本地与多种云存储之间进行高效的数据同步和迁移。本文将介绍 rclone 的安装、配置及常用操作方法,帮助你快速上手。
一、安装 rclone
1. 公网环境安装(以 Ubuntu 为例)
1 | curl https://downloads.rclone.org/v1.67.0/rclone-v1.67.0-linux-amd64.deb -o 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 | cat > ~/.config/rclone/rclone.conf << 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 辅助生成,如有错误或建议,欢迎指出。