随机
Enter 搜索 ↑↓ 切换 Esc 清空

rclone

命令

云存储文件同步工具

rclone

云存储文件同步工具

补充说明

rclone 是一款功能强大的命令行工具,用于管理和同步各种云存储服务中的文件。支持 40+ 种云存储后端,包括 Google Drive、Dropbox、OneDrive、Amazon S3、阿里云 OSS、腾讯云 COS、天翼云、WebDAV 等。

快速安装

Linux / macOS

# 一键安装(官方脚本)
curl https://rclone.org/install.sh | bash

# 或直接下载二进制(以 linux-amd64 为例)
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
cp rclone /usr/local/bin/
chmod 755 /usr/local/bin/rclone

Windows (PowerShell)

# 使用 winget
winget install Rclone.Rclone

# 或手动下载安装
# 访问 https://rclone.org/downloads/ 下载 Windows 版本

Docker

docker run --rm -it -v ~/.config/rclone:/config/rclone rclone/rclone config

语法

rclone [选项] 命令 [参数]

初始化配置

# 交互式配置新存储后端
rclone config

# 非交互式配置(以 WebDAV 为例)
rclone config create mywebdav webdav url=https://example.com/dav vendor=nextcloud user=myuser pass=$(rclone obscure mypassword)

常用命令

命令 说明
config 管理远程存储配置
copy 复制文件(跳过已存在的,增量传输)
sync 单向同步(使目标与源完全一致)
bisync 双向同步
move 移动文件(复制后删除源)
ls / lsd / lsl 列表查看(文件/目录/详细)
size 显示存储总大小和文件数
tree 树形显示目录结构
mkdir / rmdir 创建/删除空目录
delete / purge 删除文件/清空目录
mount 将云存储挂载为本地文件系统
rcd 以守护进程方式运行 RPC 服务
cryptcheck 检查加密完整性
genconfig 生成参考配置文件

常用选项

选项 说明
-P, --progress 显示传输进度
--dry-run 试运行(仅显示将要执行的操作)
--bwlimit <速率> 限制带宽(如 2M 表示 2MB/s)
--exclude <模式> 排除匹配的文件
--include <模式> 仅包含匹配的文件
--max-size <大小> 跳过大于指定大小的文件
--min-size <大小> 跳过小于指定大小的文件
--delete-empty-src-dirs 移动后删除空源目录
--ignore-existing 跳过已存在的文件(不覆盖)
--ignore-times 忽略修改时间,强制覆盖
--retries <次数> 失败重试次数(默认 3)
--transfers <数量> 并行传输数(默认 4)
--checkers <数量> 并行检查数(默认 8)
--log-file <文件> 日志输出到文件
-i, --interactive 交互模式(执行前确认)

常见存储后端配置

WebDAV(通用)

# Nextcloud / OwnCloud
rclone config create mywebdav webdav \
  url=https://example.com/remote.php/dav/files/username \
  vendor=nextcloud \
  user=username \
  pass=$(rclone obscure "your_password")

阿里云 OSS

# 需先创建 RAM 子用户并获取 AccessKey
rclone config create aliyunoss s3 \
  provider=Alibaba \
  env_auth=false \
  access_key_id=LTAI****** \
  secret_access_key=****** \
  endpoint=oss-cn-hangzhou.aliyuncs.com \
  acl=private

腾讯云 COS

rclone config create tencentcos s3 \
  provider=TencentCOS \
  env_auth=false \
  access_key_id=AKID****** \
  secret_access_key=****** \
  endpoint=cos.ap-guangzhou.myqcloud.com \
  acl=default

Google Drive

# 交互式认证(需浏览器打开链接授权)
rclone config create gdrive drive scope=drive

常见使用场景

1. 本地文件备份到云存储

# 增量复制(仅传输新增/变化的文件)
rclone copy /data/backups mydrive:Backups -P

# 完全同步(删除目标端多余文件)
rclone sync /data/www mydrive:Website --delete-excluded -P

2. 云存储挂载为本地磁盘

# 挂载到本地目录(Linux)
mkdir -p ~/mydrive
rclone mount mydrive: ~/mydrive --daemon --vfs-cache-mode writes &

# 卸载
fusermount -u ~/mydrive

3. 服务器间文件传输

# 直接在两个云存储之间传输(不走本地流量)
rclone copy aliyunoss:bucket/path tencentcos:bucket/path -P

# 本地到远程服务器
rclone copy /local/data vps:~/backup --bwlimit 10M -P

4. 定时备份(结合 cron)

# 编辑 crontab
crontab -e

# 每天凌晨 2 点执行备份
0 2 * * * /usr/bin/rclone sync /data mydrive:Backup --log-file /var/log/rclone-backup.log

5. 加密备份

# 先创建加密 remote
rclone config create mycrypt crypt \
  remote=mydrive:EncryptedBackup \
  password=$(rclone obscure "your-crypt-password")

# 通过加密 remote 上传
rclone copy /local/data mycrypt: -P

6. 增量实时同步(使用 inotify)

# 安装 inotify-tools(Debian/Ubuntu)
apt install inotify-tools

# 使用 inotifywait 触发 rclone
inotifywait -mr --format '%w%f' -e modify,create,delete,move /watch/dir |
while read file; do
  rclone copy /watch/dir mydrive:WatchDir -P
done

语法详解

# 交互式配置新存储
rclone config

# 列出所有配置的远程存储
rclone listremotes

# 列出远程存储中的文件
rclone ls mydrive:Documents

# 将本地目录复制到云存储
rclone copy /home/user/photos mydrive:Photos

# 从云存储下载文件
rclone copy mydrive:Documents/report.pdf ./downloads/

# 同步(使目标与源完全一致)
rclone sync /local/data mydrive:Backup --progress

# 双向同步
rclone bisync mydrive:Work ./work --resync

# 将云存储挂载为本地目录
rclone mount mydrive: ~/mydrive --daemon

# 显示存储使用量
rclone size mydrive:Photos

# 树形显示
rclone tree mydrive:Documents

# 仅复制新文件(跳过已有文件)
rclone copy mydrive:Videos /local/videos --ignore-existing

# 限制带宽
rclone copy source: dest: --bwlimit 2M

# 排除特定文件
rclone sync /local mydrive:Backup --exclude "*.tmp"

# 加密传输
rclone copy /local mydrive:Backup --crypt-remote myencrypt:

# 交互式复制
rclone copy mydrive: mydrive2: -i

# 试运行(不实际执行)
rclone sync /local mydrive:Backup --dry-run