rclone 使用说明

为什么使用 rclone

我们使用网盘,一般是打开客户端,然后上传我们的文件或者文件夹,但是当我们的数据在本地更新了,网盘上却不会更新(据我所知 Dropbox 和 iCloud 可以做到同步更新),需要我们再次打开客户端上传一遍。能不能让本地文件实时(或者每间隔一段时间)同步上传到网盘呢?rclone 可以做到这一点。不仅如此,rclone 还可以让你使用命令行在不同网盘之间同步数据。

rclone 是一个命令行程序,支持 Windows、Linux、macOS 平台,用来与网盘进行数据同步,目前已支持的网盘种类非常多,包括 Google Drive、Dropbox、Microsoft One Drive 等等。

在 GitHub 上查看rclone 官网

关于 rclone 的安装请查看 安装教程

与 Google Drive 同步

首先是设置 Google API:

  1. 访问 Google API 控制台,并且使用 Google 账号登录;

  2. 选择一个项目 (project) 或新建一个项目;

  3. 在上方的 API 搜索框中键入 Google Drive 然后回车,找到搜索结果中的 Google Drive API:

    进入后,点击启用;

  4. 如果此前没有配置过“同意屏幕”,那么点击左侧菜单中的“配置同意屏幕”,选择目标用户类型为外部,应用名称可以填入“rclone”,然后填入自己的邮箱,gmail 即可,点击保存创建,最后在创建好的同意屏幕中,把“发布状态”从“测试”切换为“发布”;

  5. 点击左侧菜单的“凭据”,点击屏幕上方的“+创建凭据”,选择“OAuth 客户端 ID”,应用类型选择“桌面应用”,点击创建,然后就会显示 OAuth 客户端的 clinet_id 以及 client_secret,这两样东西后面会用到。

然后是添加网盘配置:

使用rclone config命令配置网盘,键入 n 来创建第一个网盘,取名叫 GD:

1
2
3
4
5
6
7
8
9
$ rclone config
No remotes found - make a new one
n) New remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
n/r/c/s/q> n
name> GD

然后选择网盘类型 (Storage),键入 drive,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / 1Fichier
\ "fichier"
2 / Alias for an existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
......
15 / Google Drive
\ "drive"
......
Storage> drive

键入之前获取的 clinet_id 以及 client_secret:

1
2
3
4
Google Application Client Id - leave blank normally.
client_id>
Google Application Client Secret - leave blank normally.
client_secret>

scope 键入 1,root_folder_id 回车默认,service_account_file 回车默认,Edit advanced config 键入 n,Use auto config 键入 y。

然后在自动打开的网页中登录 Google 账号,给予 rclone 修改 Google Drive 的权限。至此,创建网盘配置就完成了!

现在,我们就可以使用命令行来同步我们的数据了,比如我们可以将本地目录 ~/Documents/MyData/ 中的内容推送到 GD 网盘的 MyData/ 中:

1
$rclone sync ~/Documents/MyData/ GD:MyData/

自动化上传文件

我们可以编写脚本,每间隔一段时间就上传文件,这样就实现了网盘与本地的实时同步。

比如我的自动上传脚本:

1
2
3
4
5
6
7
#!/bin/bash
while true
do
sleep 3600
DATE=$(date +%Y%m%d)
rclone sync /Users/kyle/Documents/MyData/ GD:MyData_Backup/MyData_${DATE}
done

这个脚本每间隔 1 个小时将本地文件同步到网盘中,文件夹的命名为“名字+日期”的形式,这样的话,网盘中每天会新增一个文件夹,用于保留历史备份。

Author: birdkyle7918
Link: https://birdkyle7918.com/2021/03/08/rclone-使用说明/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
请我喝杯咖啡(支付宝)