Rclone 是一款的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。

官网网址:https://rclone.org/

Github 项目:https://github.com/rclone/rclone

安装rclone

安装依赖如果你需要挂载使用

1
2
sudo apt-get update
sudo apt-get install curl unzip
1
apt-get install fuse3

下载源码安装

1
2
3
4
wget --no-check-certificate 'https://downloads.rclone.org/v1.52.3/rclone-v1.52.3-linux-amd64.zip'
unzip rclone-v1.52.3-linux-amd64.zip
cp ./rclone-*/rclone /usr/local/bin
rm -rf ./rclone-*

官网脚本安装

1
curl https://rclone.org/install.sh | bash

配置rclone

在Linux或者Mac上完成安装之后,rclone会默认从配置文件~/.config/rclone/rclone.conf中获取rclone的配置。我们既可以通过rclone config命令来交互式修改这个配置,也可以直接编辑这个配置文件。

1
mkdir -p /root/.config/rclone/
1
touch /root/.config/rclone/rclone.conf
1
vim /root/.config/rclone/rclone.conf

AWS S3的rclone配置

1
2
3
4
5
6
7
8
9
[s3-overseas]
type = s3
provider = AWS
env_auth = false
access_key_id = <your-aws-access-key-id>
secret_access_key = <your-aws-secret-access-key>
region = <your-region-id>
acl = public-read
endpoint = https://s3.<your-region-id>.amazonaws.com

配置参数详解

  • [s3-overseas]: 定义该S3在本地的一个别名,后续执行命令时方便调用
  • type: 指定该配置的类型
  • provider: 存储的提供商,具体可参照官方文档
  • env_auth: 是否从环境变量中读取
  • access_key_id: 有权限操作bucket的 AK
  • secret_access_key: 有权限操作bucket的 SK
  • region: bucket所处的地区
  • acl: 上传的文件的权限
  • endpoint: bucket的加速地址 点击查看AWS加速节点

如果 env_auth 配置为 true , 可以避免在rclone.conf中写上AWS的key和secret,而是直接使用~/.aws/中的配置,也可以在运行rclone时,通过指定环境变量AWS_PROFILE=<your_profile_name>来使用某一个profile

Ali OSS的rclone配置

1
2
3
4
5
6
7
[oss-hwpf]
type = s3
provider = Alibaba
access_key_id = <your-ali-access-key-id>
secret_access_key = <your-ali-secret-access-key>
endpoint = oss-cn-hongkong.aliyuncs.com
acl = public-read

点击查看阿里云OSS加速节点

cloudflare r2的rclone配置

1
2
3
4
5
6
7
[r2]
type = s3
provider = Cloudflare
access_key_id = xxxx
secret_access_key = xxxx
region = auto
endpoint = https://xxxx.r2.cloudflarestorage.com

腾讯云cos的rclone配置

1
2
3
4
5
6
7
8
[cos]
type = s3
provider = TencentCOS
access_key_id = xxxx
secret_access_key = xxxx
endpoint = cos.ap-guangzhou.myqcloud.com
acl = default
storage_class = STANDARD

命令参数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
rclone config - 以控制会话的形式添加rclone的配置,配置保存在.rclone.conf文件中。
rclone copy - 将文件从源复制到目的地址,跳过已复制完成的。
rclone sync - 将源数据同步到目的地址,只更新目的地址的数据。   –dry-run标志来检查要复制、删除的数据
rclone move - 将源数据移动到目的地址。
rclone delete - 删除指定路径下的文件内容。
rclone purge - 清空指定路径下所有文件数据。
rclone mkdir - 创建一个新目录。
rclone rmdir - 删除空目录。
rclone check - 检查源和目的地址数据是否匹配。
rclone ls - 列出指定路径下所有的文件以及文件大小和路径。
rclone lsd - 列出指定路径下所有的目录/容器/桶。
rclone lsl - 列出指定路径下所有文件以及修改时间、文件大小和路径。
rclone md5sum - 为指定路径下的所有文件产生一个md5sum文件。
rclone sha1sum - 为指定路径下的所有文件产生一个sha1sum文件。
rclone size - 获取指定路径下,文件内容的总大小。.
rclone version - 查看当前版本。
rclone cleanup - 清空remote。
rclone dedupe - 交互式查找重复文件,进行删除/重命名操作。
rclone mount - 挂载云盘为本地硬盘
fusermount -qzu LocalFolder  - 卸载挂载的云盘

rclone常用操作

ls

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
### 显示远端bucket下的文件
rclone ls s3-overseas:bucket-name
OUT:   106622 header.png

### 显示远端bucket下的目录
rclone lsd s3-overseas:bucket-name
OUT:   0 2020-08-27 15:57:08        -1 new

### 以json形式列出bucket下的目录和文件
rclone lsjson s3-overseas:bucket-name
OUT: [
OUT: {"Path":"header.png","Name":"header.png","Size":106622,"MimeType":"image/png","ModTime":"2020-08-27T07:32:29.000000000Z","IsDir":false,"Tier":"STANDARD"},
OUT: {"Path":"new","Name":"new","Size":0,"MimeType":"inode/directory","ModTime":"2020-08-27T16:02:42.413393904+08:00","IsDir":true}
OUT: ]

### 以json形式递归的列出bucket-name下目录和文件
rclone lsjson s3-overseas:bucket-name -R

### 查看存储桶中500B以上的文件列表
rclone --min-size 500B lsl s3-overseas:bucket-name

sync

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
### 同步本地目录或文件到远端bucket
rclone sync <LOCAL_PATH> s3-overseas:bucket-name/target-path/

### 同步远端bucket目录到本地
rclone sync s3-overseas:bucket-name/target-path/ <LOCAL_PATH>

### 远端同步到远端
# S3直接同步到阿里的OSS
rclone sync s3-overseas:bucket-name oss-hwpf:bucket-name

### 将本地文件同步到远端,并备份被删除或修改的文件到备份存储桶中
rclone sync <LOCAL_PATH> s3-overseas:bucket-name --backup-dir s3-overseas:backup-bucket-name/backup-dir

sync操作,会删除目标端的目录或文件。执行前可以加 --dry-run参数查看将要删除的文件或目录

copy

1
2
3
4
5
6
7
### 拷贝本地文件到远端
rclone copy <LOCAL_PATH> s3-overseas:bucket-name/target-path/

## 拷贝远端对象到本地
rclone copy s3-overseas:bucket-name/target-path/ <LOCAL_PATH>

rclone copy --max-age 24h --progress --no-traverse <LOCAL_PATH> s3-overseas:bucket-name/target-path/

copy操作,不会删除目标端的任何文件

–max-age 24h: 过滤出来最近24小时变更过的文件

–progress: 显示进度 等同于 -P

–no-traverse: 从源拷贝少量文件到目的中大量目的文件时,速度会更快

mkdir

1
2
3
4
5
6
7
8
### 创建新的bucket 需要AKSK有权限
rclone mkdir s3-overseas:new-bucket-name  # 在AWS创建存储桶new-bucket-name

### 创建新目录
rclone mkdir s3-overseas:bucket-name/new-dir

### 不支持直接创建空目录则用下面命令
rclone touch s3-overseas:bucket-name/new-dir/emptyfile.txt

delete

1
2
3
4
5
### 删除bucket根目录下的delete.file  如果`--include`不加路径,则递归删除所有该名字文件
rclone delete s3-overseas:bucket-name --include=/delete.file

### 删除bucket根目录下的所有文件包括子目录
rclone delete s3-overseas:bucket-name --include "*"

check

1
2
3
4
5
### 对比本地文件和远端文件,默认校验修改时间和大小
rclone check <LOCAL_PATH> s3-overseas:bucket-name/target-path/ --one-way

### 进行数据对比校验
rclone check s3-overseas:bucket-name/target-path/  oss-hwpf:bucket-name/target-path/ -P

其他操作

挂载

gd: 谷歌云盘, r2: cloudflare, cos: 腾讯cos

1
mkdir -p /home/google /home/r2 /home/cos
1
2
3
4
5
rclone mount gd: /home/google --allow-other --vfs-cache-mode writes --allow-non-empty --no-modtime &

rclone mount r2: /home/r2 --allow-other --vfs-cache-mode writes --allow-non-empty --no-modtime &

rclone mount cos: /home/cos --allow-other --vfs-cache-mode writes --allow-non-empty --no-modtime &

卸载

1
2

fusermount -qzu /home/google

常用命令

复制

1
rclone copy /up gd:upload --ignore-existing -u -v -P --transfers=10 --ignore-errors --buffer-size=16M --check-first --checkers=10

同步

1
rclone sync /up gd:upload --ignore-existing -u -v -P --transfers=10 --ignore-errors --buffer-size=16M --check-first --checkers=10 --drive-acknowledge-abuse

网盘到网盘同步

r2图床同步到谷歌云盘和腾讯cos

1
rclone sync r2:blog gd:r2/blog --ignore-existing -u -v -P --transfers=10 --ignore-errors --buffer-size=16M --check-first --checkers=10 --drive-acknowledge-abuse
1
rclone sync r2:blog cos:shenma-1253486782/blog --ignore-existing -u -v -P --transfers=15 --ignore-errors --buffer-size=64M --check-first --checkers=10 --drive-acknowledge-abuse

其他参数

1
2
3
4

rclone config - 进入交互式配置选项,进行添加、删除、管理网盘等操作。
rclone config paths - 显示配置文件的路径,一般配置文件在 ~/.config/rclone/rclone.conf,更换服务器可直接copy该文件。
rclone config show - 显示配置文件信息

可视化上传下载 RcloneBrowser

https://github.com/kapitainsky/RcloneBrowser/releases

Pasted image 20230910013441

配置 rclone.exe的路径还有 rclone.conf 配置文件的路径。

Pasted image 20230910013504

配置好后就可以看见前面配置的 OneDrive 网盘了 ☁️

Pasted image 20230910013603

双击打开就可以看见里面的内容了,可以去愉快的上传或者下载了

Pasted image 20230910013617

上传的话,选择要上传的文件或文件夹以及云盘的存放路径,再选择 copy 模式,点击 run 即可。下载与之类似。

Pasted image 20230910013640

在 Jobs当中还可以查看任务的进度、速度等

Pasted image 20230910013654

另外还可以设置代理,见下图:

Pasted image 20230910013704

这样挂载谷歌云端硬盘就很方便了。

完结~~