rclone 云盘同步工具的正确打开方式
Rclone 是一款的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。
官网网址:https://rclone.org/
Github 项目:https://github.com/ncw/rclone
安装rclone
下载源码安装
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-*
使用官网推荐脚本安装
curl https://rclone.org/install.sh | bash
配置rclone
在Linux或者Mac上完成安装之后,rclone会默认从配置文件~/.config/rclone/rclone.conf
中获取rclone的配置。我们既可以通过rclone config
命令来交互式修改这个配置,也可以直接编辑这个配置文件。
AWS S3的rclone的配置
[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的 AKsecret_access_key
: 有权限操作bucket的 SKregion
: bucket所处的地区acl
: 上传的文件的权限endpoint
: bucket的加速地址 点击查看AWS加速节点
如果
env_auth
配置为true
, 可以避免在rclone.conf中写上AWS的key和secret,而是直接使用~/.aws/中的配置也可以在运行rclone时,通过指定环境变量
AWS_PROFILE=<your_profile_name>
来使用某一个profile
Ali OSS的rclone配置
[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
使用说明
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
### 显示远端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
### 同步本地目录或文件到远端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
### 拷贝本地文件到远端
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
### 创建新的bucket 需要AKSK有权限
rclone mkdir s3-overseas:new-bucket-name # 在AWS创建存储桶new-bucket-name
### 创建新目录
rclone mkdir s3-overseas:bucket-name/new-dir
delete
### 删除bucket根目录下的delete.file 如果`--include`不加路径,则递归删除所有该名字文件
rclone delete s3-overseas:bucket-name --include=/delete.file
check
### 对比本地文件和远端文件,默认校验修改时间和大小
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