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

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

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

安装rclone

下载源码安装

wget '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的 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配置

[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加速节点

使用说明

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

rclone 云盘同步工具的正确打开方式的更多相关文章

  1. (一)Redis for Windows正确打开方式

    目录 (一)Redis for Windows正确打开方式 (二)Redis for 阿里云公网连接 (三)Redis for StackExchange.Redis 下载地址 官网.中文网1 及 中 ...

  2. 【分享】WeX5的正确打开方式(6)——数据组件初探

    本文是[WeX5的正确打开方式]系列的第6篇文章,简单介绍一下WeX5中数据组件的特性和结构形式. 数据组件的由来 上一篇 WeX5绑定机制我们实现了一个简单的记账本应用,当时所有数据都用 JSON ...

  3. iOS开发小技巧--相机相册的正确打开方式

    iOS相机相册的正确打开方式- UIImagePickerController 通过指定sourceType来实现打开相册还是相机 UIImagePickerControllerSourceTypeP ...

  4. Xcode 的正确打开方式——Debugging(转载)

    Xcode 的正确打开方式——Debugging   程序员日常开发中有大量时间都会花费在 debug 上,从事 iOS 开发不可避免地需要使用 Xcode.这篇博客就主要介绍了 Xcode 中几种能 ...

  5. C#语法——泛型的多种应用 C#语法——await与async的正确打开方式 C#线程安全使用(五) C#语法——元组类型 好好耕耘 redis和memcached的区别

    C#语法——泛型的多种应用   本篇文章主要介绍泛型的应用. 泛型是.NET Framework 2.0 版类库就已经提供的语法,主要用于提高代码的可重用性.类型安全性和效率. 泛型的定义 下面定义了 ...

  6. InnoDB缓冲池预加载在MySQL 5.7中的正确打开方式

    InnoDB缓冲池预加载在MySQL 5.7中的正确打开方式 https://mp.weixin.qq.com/s/HGa_90XvC22anabiBF8AbQ 在这篇文章里,我将讨论在MySQL 5 ...

  7. Console控制台的正确打开方式

    Console控制台的正确打开方式 console对象提供了访问浏览器调试模式的信息到控制台 -- Console对象 |-- assert() 如果第一个参数断言为false,则在控制台输出错误信息 ...

  8. 任务队列和异步接口的正确打开方式(.NET Core版本)

    任务队列和异步接口的正确打开方式 什么是异步接口? Asynchronous Operations Certain types of operations might require processi ...

  9. List的remove()方法的三种正确打开方式

    转: java编程:List的remove()方法的三种正确打开方式! 2018年08月12日 16:26:13 Aries9986 阅读数 2728更多 分类专栏: leetcode刷题   版权声 ...

随机推荐

  1. 坐标下降(Coordinate descent)

    坐标下降法属于一种非梯度优化的方法,它在每步迭代中沿一个坐标的方向进行线性搜索(线性搜索是不需要求导数的),通过循环使用不同的坐标方法来达到目标函数的局部极小值.

  2. Django-Scrapy生成后端json接口

    Django-Scrapy生成后端json接口: 网上的关于django-scrapy的介绍比较少,该博客只在本人查资料的过程中学习的,如果不对之处,希望指出改正: 以后的博客可能不会再出关于djan ...

  3. Power Designer建模之餐饮在线点评系统——业务处理模型

    餐饮在线点评系统除查看会员促销活动.查看站内消息等简单业务流程外,相对复杂的业务流程包括管理员注册餐厅,发布餐厅信息,餐厅信息主要包括特色菜.促销活动.团购活动和优惠券信息. 餐厅信息发布后,用户可以 ...

  4. Java 获取屏幕的宽度和高度

    获取屏幕的宽度和高度 1 import java.awt.Dimension; 2 import java.awt.Toolkit; 3 4 public class Main { 5 6 publi ...

  5. mac操作liunx

    mkdir demo //创建一个文件夹 touch index.html // 创建一个html文件 rm rouch index.html //删除找个index.html文件 rmdir dem ...

  6. 一道web入门题

    9月27日00:00 这道题是我将hctf_warmup魔改之后得到的,难度比较低,主要还是讲一些web相关的思考方式,所以这篇文章会比较冗长过于详细.(毕竟是给小姑娘入门看的23333).就当M1s ...

  7. vue 异步提交php 两种方式传值

    1.首先要在php的入口文件写上一条代码,允许异步提交 header("ACCESS-CONTROL-ALLOW-ORIGIN:*"); 2.在vue有两种方式将数据异步提交到ph ...

  8. C# 用IrisSkin4.dll美化你的WinForm

    如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! ! --------------------------- ...

  9. linux的安装3.7python

    centos安装python3 首先安装依赖包 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-dev ...

  10. MySQL数据库的完全备份与恢复

    前言 在生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果,正确的数据库操作是实际环境下不可缺少的. 一.数据库备份的分类 1.1 从物理与逻辑的角度,备份的分类 物理备份:对数 ...