转载说明
本文转载自:https://liyuans.com/archives/rclone.html

概述

Google Drive
Amazon S3
Openstack Swift / Rackspace cloud files / Memset Memstore
Dropbox
Google Cloud Storage
Amazon Drive
Microsoft One Drive
Hubic
Backblaze B2
Yandex Disk
The local filesystem

安装

wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
chmod 0755 ./rclone-*/rclone
cp ./rclone-*/rclone /usr/bin/
rm -rf ./rclone-*

curl -O http://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
cp rclone /usr/sbin/
chown root:root /usr/sbin/rclone
chmod 0755 /usr/sbin/rclone

配置

rclone config

实例

  • 下图以 Google Drive 为例展示配置过程

步骤解释

  • 第一步:配置 config rclone
  • 第二部:选择新建
    n # 新建配置
  • 第三步:起名字,这个随意填写,例如 MJJ
    MJJ #起名字
  • 第四步:选择存储类型,实例中选择的是 7
    1 亚马逊云盘
    2 亚马逊 S3
    3 BackBlaze B2,这个后面也会写文章介绍
    4 Dropbox
    5 不是很懂是啥
    6 谷歌云存储(不是谷歌云盘)
    7 谷歌云盘 Google Drive
    8 Hubic,OVH 旗下存储服务,有介绍过, 免费最高 55G https://liyuans.com/archives/hubic.html
    9 本地硬盘
    10 微软 Onedrive(注意只支持个人版,不支持商业版、教育版)
    11 Openstack Swift,不了解
    12 SSH 连接,也就是说支持 VPS 同步!
    13 Yandex 网盘,俄罗斯的,有 10G 大小免费额度
  • 第五步:谷歌应用 ID,留空
  • 第六步:谷歌应用密钥,留空
  • 第七步:自动配置,选择手动
    n # 手动配置
  • 第八步:复制链接到浏览器,登录谷歌,获取验证码
  • 第九步:填写验证码
  • 第十步:确认配置
    y # 确认配置
  • 第十一步:退出配置
    q # 退出配置

简单操作

谷歌云盘对拷

  • 可以实现两个 Google Drive 之间对拷备份文件,不占用硬盘。毕竟大家的 gdrive 来源都是你懂得,担心不稳,可以多个 google drive 多存几份。在新建好 rclone 的配置文件后,使用以下命令即可:
rclone copy gdrive1: gdrive2:

本地数据备份

  • 自己 VPS 上的网站数据想备份到其他 VPS 或者网盘内,其实也很简单。在建立好 rclone 的配置文件后,使用以下命令即可:
rclone sync /本地绝对路径 dest:path

小技巧

复用

  • rclone 配置文件存储位置~/.config/rclone/rclone.conf,可以保存里面的内容,在新电脑上直接用这个配置文件即可

详细使用

操作命令

  • rclone 命令的语法格式:
Syntax: [options] subcommand <parameters> <parameters...>
  • 常用的 rclone 命令有:
rclone config - 以控制会话的形式添加rclone的配置,配置保存在.rclone.conf文件中。
rclone copy - 将文件从源复制到目的地址,跳过已复制完成的。
rclone sync - 将源数据同步到目的地址,只更新目的地址的数据。
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 config

  • 开启一个交互式的配置会话。命令格式如下:
rclone config

rclone copy

  • 将文件从源复制到目的地址,跳过已复制完成的。命令格式如下:
rclone copy source:sourcepath dest:destpsth
  • 说明:
    rclone copy 复制总是指定路径下的数据;而不是当前目录。
    –no-traverse 标志用于控制是否列出目的地址目录。

rclone sync

rclone sync source:path dest:path
  • 说明:
    同步数据时,可能会删除目的地址的数据;建议先使用–dry-run 标志来检查要复制、删除的数据。
    同步数据出错时,不会删除任何目的地址的数据。
    rclone sync 同步的始终是 path 目录下的数据,而不是 path 目录。(空目录将不会被同步)

 

rclone move

rclone move source:path dest:path
  • 说明:
    同步数据时,可能会删除目的地址的数据;建议先使用–dry-run 标志来检查要复制、删除的数据。

rclone purge

  • 清空 path 目录和数据。命令格式如下:
rclone purge remote:path
  • 说明:
    此命令,include/exclude 过滤器失效。
    删除 path 目录下部分数据,请使用 rclone delete 命令

rclone mkdir

  • 创建 path 目录。命令格式如下:
rclone mkdir remote:path

rclone rmdir

  • 删除一个空目录。命令格式如下:
rclone rmdir remote:path
  • 说明:
    不能删除非空的目录,删除非空目录请使用 rclone purge。

rclone check

  • 检查源和目标地址文件是否匹配。命令格式如下:
rclone check source:path dest:path
  • 说明:
    –size-only 标志用于指定,只比较大小,不比较 MD5SUMs。

rclone ls

  • 列出指定 path 下,所有的文件以及文件大小和路径。命令格式如下:
rclone ls remote:path

rclone lsd

  • 列出指定 path 下,所有目录、容器、桶。命令格式如下:
rclone lsd remote:path

rclone delete

  • 删除指定目录的内容。命令格式如下:
rclone delete remote:path
  • 说明:
    不同于 rclone purge,rclone delete 可使用 include/exclude 过滤器选择删除文件内容。

一些例子:

  • 删除文件大小大于 100M 的文件
# 先检查哪些文件将被删除
rclone --min-size 100M lsl remote:path                  # 使用rclone lsl 列出大于100M的文件
rclone --dry-run --min-size 100M delete remote:path    # 使用--dry-run 检查将要被删除的文件

# 使用 rclone delete 进行文件删除
rclone --min-size 100M delete remote:path

rclone size

  • 获取指定 path 下所有数据文件的总大小。命令格式如下:
rclone size remote:path

更多

参考狗仔小分队和 Lain’s Blog