Windows平台下使用 Rclone 挂载 备份OneDrive

Windows平台下使用 Rclone 挂载 备份OneDrive

Rclone (rsync for cloud storage) 是一个命令行程序,用于同步文件和目录,支持常见的 Amazon Drive 、Google Drive 、OneDrive 、Dropbox 等云存储。本文将演示在 Windows 平台下将 OneDrive 挂载为本地硬盘,并使用跨平台的 Rclone GUI 连接到云盘。 我用rclone的目的主要是用于多个OneDrive/SharkPoint之间的备份工作

1、rclone下载地址

首先下载适用于 Windows 的 rclone 👇

官网下载:点击前往官方下载✈
GitHub下载:点击前往GitHub官方下载

rclone官网中,Windows 平台下选择下载 AMD64 - 64 Bit

选择下载 AMD64 - 64 Bit

或者在github下载。

选择windows-amd64.zip

下载后解压到一个英文路径中。 如下图,我的路径

我的解压路径,英文路径

另外在Windows平台使用rclone还需要另一个依赖工具winfsp,下载地址:Gitee 极速下载/winfsp,下载后一路安装即可。

默认选项安装即可

2、为rclone配置环境变量

  1. 在电脑桌面右键点击“此电脑”的“属性”选项

  2. 选择“高级系统设置”选项,找到环境变量

    找到环境变量,打开

  3. 在系统变量中找到path,添加刚才解压后的路径

    添加刚才解压后的路径

3、检查rclone的安装环境是否配置成功

打开 cmd ,输入rclone --version,如果出现下面的输出(随着版本升级可能会有略微差异)则安装成功,否则检查上面步骤的环境变量是否配置正确。

检查rclone的安装环境是否配置成功

4、开始配置rclone

在cmd中依次输入以下命令行,请根据我下的步骤进操作。(随着版本升级可能会略微差异~)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
C:\Users\83423>rclone config    // 第一步在终端输入 rclone config 
Current remotes:

Name Type
==== ====

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n //第二步输入n创建新的配置

name> OneDrive_E5 //第三步 输入一个英文名称 ,中间也不要有空格
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"
4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, SeaweedFS, and Tencent COS
\ "s3"
5 / Backblaze B2
\ "b2"
6 / Box
\ "box"
7 / Cache a remote
\ "cache"
8 / Citrix Sharefile
\ "sharefile"
9 / Compress a remote
\ "compress"
10 / Dropbox
\ "dropbox"
11 / Encrypt/Decrypt a remote
\ "crypt"
12 / Enterprise File Fabric
\ "filefabric"
13 / FTP Connection
\ "ftp"
14 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
15 / Google Drive
\ "drive"
16 / Google Photos
\ "google photos"
17 / Hadoop distributed file system
\ "hdfs"
18 / Hubic
\ "hubic"
19 / In memory object storage system.
\ "memory"
20 / Jottacloud
\ "jottacloud"
21 / Koofr
\ "koofr"
22 / Local Disk
\ "local"
23 / Mail.ru Cloud
\ "mailru"
24 / Mega
\ "mega"
25 / Microsoft Azure Blob Storage
\ "azureblob"
26 / Microsoft OneDrive
\ "onedrive"
27 / OpenDrive
\ "opendrive"
28 / OpenStack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
29 / Pcloud
\ "pcloud"
30 / Put.io
\ "putio"
31 / QingCloud Object Storage
\ "qingstor"
32 / SSH/SFTP Connection
\ "sftp"
33 / Sugarsync
\ "sugarsync"
34 / Tardigrade Decentralized Cloud Storage
\ "tardigrade"
35 / Transparently chunk/split large files
\ "chunker"
36 / Union merges the contents of several upstream fs
\ "union"
37 / Uptobox
\ "uptobox"
38 / Webdav
\ "webdav"
39 / Yandex Disk
\ "yandex"
40 / Zoho
\ "zoho"
41 / http Connection
\ "http"
42 / premiumize.me
\ "premiumizeme"
43 / seafile
\ "seafile"
Storage> 26 //第四步 输入要配置的网盘类型 因为我们要配置Microsoft OneDrive 因此输入26(随着版本的升级,你的不一定是26

OAuth Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id> //第五步 直接回车

OAuth Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> //第六步 直接回车

Choose national cloud region for OneDrive.
Enter a string value. Press Enter for the default ("global").
Choose a number from below, or type in your own value
1 / Microsoft Cloud Global
\ "global"
2 / Microsoft Cloud for US Government
\ "us"
3 / Microsoft Cloud Germany
\ "de"
4 / Azure and Office 365 operated by 21Vianet in China
\ "cn"
region> 1 //第七步 输入1

Edit advanced config?
y) Yes
n) No (default)
y/n> n //第八步 输入n 不进行高级配置

Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine

y) Yes (default)
n) No
y/n> y //第九步 输入y 使用自动配置授权

//输入y后会打开默认浏览器 登录Microsoft账号后 选择 是 即可

If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=sUuYaGWtxruA81JiCokJGg
Log in and authorize rclone for access
Waiting for code...
Got code
Choose a number from below, or type in an existing value
1 / OneDrive Personal or Business
\ "onedrive"
2 / Root Sharepoint site
\ "sharepoint"
3 / Type in driveID
\ "driveid"
4 / Type in SiteID
\ "siteid"
5 / Search a Sharepoint site
\ "search"
Your choice>1 //第十步 输入1 因为现在我配置的是 OneDrive Personal or Business 类型的网盘

Found 1 drives, please select the one you want to use:
0: OneDrive (business) id=b!qDQvcsZUTU-8eoYyKmtyyP1Jc0D8urZLlkATnfH1nWdJ1kkbrLsvQZLzVUTpeTrc
Chose drive to use:> 0 //第十一步 输入0
Found drive 'root' of type 'business', URL: https://pmjs-my.sharepoint.com/personal/wld_365_w/Documents
Is that okay?
y) Yes (default)
n) No
y/n> y //第十二步 输入y
--------------------
[OneDrive_Edu]
type = onedrive
token = {"access_token":"eyJ0eXAiOiV1QiLCJub25jZSI6ImNRYjl5TDNZWE8yczdQd2N2WTlJRkV1ZXp0QVpZZV83QWpPaHZORTU0OTgiLCJhbGciOiJSUzI1NiIsIng1dCI6IkhsQzBSMTJza3hOWjFXUXdtak9GXzZ0X3RERSIsImtpZCI6IkhsQzBSMTJza3hOWjFXUXdtak9GXzZ0X3RERSJ9yJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC84N2VjYmIxYi0wZTdlLTRlMDctOWFiMC00NWIwOTM1OTFjN2EvIiwiaWF0IjoxNTgxMzAxNLCJuYmYiOjE1ODEzMDE2MzAsImV4cCI6MTU4MTMwNTUzMCwiYWNjdCI6MCwiYWNyIjoiMSIsImFpbyI6IkFTUUyLzhPQUFBQWc2eURUazJNKzZ5YjVLNEJSN2VUR0lHT3EvSXFPT0dSZzlPWitrREoyaTg9IiwiYW1yIjpbInB3ZCJdLCJhcHBfZGlzcGxheW5hbWUiOiJyY2xvbmUiLCJhcHBpZCI6ImIxNTY2NWQ5LWVkYTYtNDA5Mi04NTM5LTBlZWMzNzZhZmQ1OSIsImFwcGlkYWNyIjoiMSIsImZhbWlseV9uYW1lIjoiV2FuZyIsImdpdmVuX25hbWUiOiJYaWFud2iwiaXBhZGRyIjoiMzkuMTI4LjIwMC4iwibmFtZSI6IldhbmdYaWFud2VuIiwib2lkIjoiZWE4ZjNjZDctN2IxYS00YmQ0LWFiNzItYzM4NDg4NTE5NDdhdGYiOiIzIiwicHVpZCI6IjEwMDMzRkZGQUVGNEE2RTUiLCJzY3A5YWIwLTQ1YjA5MzU5MWM3YSIsInVuaXF1ZV9uYW1lIjoid29ybGRAbXkzNjUudHciLCJ1cG4iOiJ3b3JsZEBteTM2NS50dyIsInV0aSI6Il85MEZWRXBZcTBTYzckFuVDluQUEiLCJ2ZXIiOiIxLjAiLCJ4bXNfc3QiOnsic3ViIjoidXlWWU96UGF5RVBVWXlSbFlEVEl6QjhUZVBkZnNTMkVHcHczNGNDM2JRTSJ9LCJ4bXNfdGNkdCI6MTUzNDQyOTU0NH0.Ki9vor6NtxXJWsdumYddz8agrzVYXRCXVg0paW7XqDTq8i_vht8GK79F0F7xp3BSKzK5Xgxb0GzwPV9dPTb4IiXM0d17P5pQB3wHLMUbVFvRbLXNwSEtSJGKLttvxL8XfT8e51k4kyyH07CtozVBsF6fmMnhftp9ZbcEVrgnFKdwTE5In83G05V7L8wDCMiKrN0KX9iTKzxT9em5QtVhGZRZJDnNS2pJTQNhiWVatjDB4VHojG2C6J1LtU6YOOOAM2uBil2ovLFhQPy0l299ZJTJeyQCLQGJki9kZgAVI42iGP4mzvVPQAJk5Oad_4nPsT87QVH4NBA","token_type":"Bearer","refresh_token":"OAQABAAAAAABeAFzDwllzTYGDLh_qYbH8falkpBpCm5PZqagAkUNWFik3Mz2ZfDPeowwW9q5mlFoHSqyYNG8FayvZxxZEUGQWUaR520MuJ5i_mj9CNs0NahNOJAtvZOBV459VLMKaNiyK9GJIGvdDe4RkaV472hbq_po8K47yC053BLRIbRji9WfsCkSMj8UP792sNJ0Tm9ptfPmy1aP_TePX8dOWaC9qZN2jDIXJDjWjCvfDesNDWXAm9bpBp1oZmObLR85EKB9Vgsz7ccZIbKEa16Aiqb67xsQICG8AzjMli76nJVFx1SB3rRc2rxSDcnVTx_Oja_6KuaUxQjhgi1XaH1Kk_c82iniwdj7EdHCbokk8eewYFyn4tBTL0xW8rwmoPDvvUvMVA7Z8Ph0AB66Ih5evroSEHsv072AyDWSwHfrEMueTeEgP5jA1aBSOXE2DDw3PySehFfbYpsh0AV3qPVP9lAHaGizEbFt9rEKl1R1bcMrEhxF9GjnvB5PChRK_abttEV2YWKWrTaEFJBTP40f96kCXZGMaE4RaUoMI7hKW4cLQrHuV5YCZQ_BQRj7r5PoUyelGPdvnW42lB8MvekksdrJAVnlUTTgVKlbpn9AUuOD2LUZ5A8IheWaLkhLXfUqjPg0UxjTLIAA","expiry":"2020-02-10T11:32:10.852646+08:00"}
drive_id = b!qDvcsZUTU8eoYyKmtyyP1Jc0D8urZLlkTnH1nWdJ1kbrLsvQZLzVUTpeTrc
drive_type = business
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d>y //第十三步 输入y

此时,就会出现刚刚配置好的网盘名称了

1
2
3
4
5
Current remotes:

Name Type
==== ====
OneDrive_E5 onedrive
1
2
3
4
5
6
7
8
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q //最后输入q退出配置即可

5、常见的rclone命令

rclone 命令的语法格式:

1
Syntax: [options] subcommand <parameters> <parameters...>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

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

1
rclone config

rclone copy

将文件从源复制到目的地址,跳过已复制完成的。命令格式如下:

1
rclone copy source:sourcepath dest:destpsth

说明:

1
2
`rclone copy` 复制总是指定路径下的数据;而不是当前目录。
`–no-traverse` 标志用于控制是否列出目的地址目录。

rclone sync

1
rclone sync source:path dest:path

说明:

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

rclone move

1
rclone move source:path dest:path

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

rclone purge

清空 path 目录和数据。命令格式如下:

1
rclone purge remote:path

说明:

1
此命令,include/exclude 过滤器失效。删除 path 目录下部分数据,请使用 rclone delete 命令

rclone mkdir

创建 path 目录。命令格式如下:

1
rclone mkdir remote:path

rclone rmdir

删除一个空目录。命令格式如下:

1
rclone rmdir remote:path

说明:不能删除非空的目录,删除非空目录请使用 rclone purge。

rclone check

检查源和目标地址文件是否匹配。命令格式如下:

1
rclone check source:path dest:path

说明:–size-only 标志用于指定,只比较大小,不比较 MD5SUMs。

rclone ls

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

1
rclone ls remote:path

rclone lsd

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

1
rclone lsd remote:path

rclone delete

删除指定目录的内容。命令格式如下:

1
rclone delete remote:path

说明:不同于 rclone purge,rclone delete 可使用 include/exclude 过滤器选择删除文件内容。
一些例子:

删除文件大小大于 100M 的文件

1
# 先检查哪些文件将被删除    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 下所有数据文件的总大小。命令格式如下:

1
rclone size remote:path

更多 rclone 命令,详见 官方文案,点击飞往✈

6、多个盘之间备份

1
rclone copy -P od1:/xxx od2:/xxx --transfers=8

其中 od1是配置的rclone中网盘名称1,od2是配置的rclone中网盘名称2

意思是,拷贝od1的xxx文件到od2的xxx文件

7、挂载OneDrive为本地硬盘

此时请使用 git bash 的终端执行以下命令,因为我使用cmdpowershell 都出现关闭终端后挂载程序退出、本地挂载的OneDrive退出的现象。 如果你的windows没有安装git , 请[自行安装](https://www.baidu.com/s?wd=windows 安装git&ie=utf-8)。若你使用 cmd 的话 ,cmd 是不能退出的,要保持 cmd 不退出本地硬盘才一直挂载着。

git bash 中输入以下挂载命令:

1
rclone mount OneDrive_E5:/  Q: --cache-dir E:\OneDrive --vfs-cache-mode writes &

其中:

OneDrive_E5 替换为你自己前面设置的名称 。

Q: 替换为你想要挂载后硬盘的盘符名称即可,记得不要和本地的C盘、D盘等重复。

E:\OneDrive 为本地缓存目录,可自行设置 。

出现:The service rclone has been started 则说明挂载成功。

然后输入 exit 退出终端即可。

输入exit退出终端即可

然后就可以看见本地多了一个盘,往里面复制文件就是上传,从里面复制文件到其它盘就是下载。

挂载的OneDrive_E5

8、设置开机自启动挂载

创建一个名称为 startup_rclone.bat 的文件,里面填写上面的挂载命令:

1
rclone mount OneDrive_E5:/  Q: --cache-dir E:\OneDrive --vfs-cache-mode writes &

将这个文件放在

1
C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

重启计算机后就会自动挂设置的云盘了,当然这样做由于调用的是 cmd 因此还是不能关闭运行的 cmd