Skip to content

备份神器 Rclone 安装与配置:定时备份数据至云存储(以 OneDrive 为例) ​

前言 ​

Rclone 是一个支持 70 多种云存储的备份工具,包括常见 S3 对象存储、WebDav、OneDrive 网盘等。设置好对应云存储后,只需通过 rclone copy 等简单的命令,即可将本地文件同步至云存储中

安装 ​

Rclone 的安装十分简单,可以选择官方提供的一键脚本一直安装,也可以直接下载二进制文件手动运行,选择其中一种方式即可

一键脚本 ​

sh
curl https://rclone.org/install.sh | sudo bash

手动安装 ​

  1. 进入官方文档下载对应平台架构的二进制文件
  2. 将 rclone 文件移动到 /usr/bin 目录
  3. 赋予权限 chmod 755 /usr/bin/rclone

配置 Rclone ​

Rclone 有提供官方的配置向导,根据提示填写对应的内容,即可生成配置文件;如果对 Rclone 配置比较熟悉的则可以直接编辑配置文件。下面分别用配置向导添加 OneDrive 网盘和配置文件直接添加 Minio S3 对象存储来进行演示

配置向导 ​

  1. 输入 rclone config

  2. 输入字母 n,来新增一个云存储

sh
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>
  1. 给云存储起个名字 (后续用命令行操作时会用到)
sh
Enter name for new remote.
name> onedrive
  1. 接着会出现支持的云存储列表,输入 33 来选择 OneDrive (以实际显示的顺序为准)
sh
33 / Microsoft OneDrive
   \ (onedrive)
  1. Client Id 和 Client Secert 可以直接回车使用默认值
sh
Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id> 

Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret>
  1. 选择 OneDrive 的类型,一般输入 1 选择 Microsoft Cloud Global
sh
Option region.
Choose national cloud region for OneDrive.
Choose a number from below, or type in your own string value.
Press Enter for the default (global).
 1 / Microsoft Cloud Global
   \ (global)
 2 / Microsoft Cloud for US Government
   \ (us)
 3 / Microsoft Cloud Germany
   \ (de)
 4 / Azure and Office 365 operated by Vnet Group in China
   \ (cn)
  1. 高级设置,输入 n 跳过
sh
Edit advanced config?
y) Yes
n) No (default)
y/n>
  1. 下面需要打开 OneDrive 网页给 Rclone 授权,由于一般的 Linux 机器没有浏览器,所以输入 n
sh
Use web browser to automatically authenticate rclone with remote?
 * Say Y if the machine running rclone has a web browser you can use
 * Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.

y) Yes (default)
n) No
  1. 关键步骤:我们需要在 Windows 上也下载一个 Rclone,然后在 Rclone 的目录运行 .\rclone.exe authorize "onedrive" "xxxxxxxxxxxxxx" 后会弹出浏览器,登录 OneDrive 账号后,命令行中会显示出授权码,将其填入下方的 config_token 中即可

提示

如果是 Google Drive 还需要配置代理,否则不会返回 config_token

cmd
set http_proxy=socks5://127.0.0.1:7890
set https_proxy=socks5://127.0.0.1:7890
sh
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
        rclone authorize "onedrive" "xxxxxxxxxxxxxx"
Then paste the result.
Enter a value.
config_token>
  1. 后续步骤一路 y 即可,这样 OneDrive 就添加到我们的 Rclone 中了

配置文件 ​

输入 rclone config 后,会在 .config/rclone 目录中生成一个 rclone.conf 文件,如果我们熟悉 Rclone 配置的话,也可以直接新建编辑该文件,同样是可以生效的

以配置 Minio 为例,参照官方文档的 S3 对象存储部分,通过 vim .config/rclone/rclone.conf 编辑该文件,直接在其中填入云存储的相关配置信息即可

txt
[minio]
type = s3
provider = Minio
env_auth = false
access_key_id = USWUXHGYZQYFYFFIT3RE
secret_access_key = MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
region = us-east-1
endpoint = http://192.168.1.106:9000
location_constraint =
server_side_encryption =

使用 Rclone ​

直接使用 ​

完成上述配置后,就可以直接使用 rclone copy 等命令将本地文件上传到云存储中

例如下面这行命令就是把 /path/to/files 上传至 minio 中的 bucket 桶中,其中 : 前的代表上面配置的云存储,后面的代表文件夹名或者桶名

sh
rclone copy /path/to/files minio:bucket

定时任务 ​

除此之外,我们还希望 Rclone 能定时运行,将文件备份到指定的云存储,这时候就需要用到 Linux 的 crontab 了

  1. 新建一个 sh 脚本,例如 rclone.sh,然后将上述的备份命令写入其中
sh
#!/bin/bash
rclone copy /path/to/files minio:bucket
  1. 赋予运行权限 chmod 755 rclone.sh
  2. 添加定时任务 crontab -e
sh
0 0 * * *  /root/rclone.sh >> /root/rclone.log 2>&1
  1. 保存后,每天的 0 点,就会自动运行 rclone.sh 脚本,将文件备份到我们指定的云存储中了

进阶用法 ​

参数 ​

  • -P / --progress:显示进度条
  • -n / --dry-run:不执行实际操作,查看会转移哪些文件
  • --transfers:并发数,默认为 4
  • --checkers:并发校验,默认为 8
  • --track-renames:追踪重命名文件,避免重复上传
  • --fast-list:一次性批量获取远端文件列表,减少 API 请求次数
  • --exclude:排除文件
    • --exclude "node_modules/**":排除整个文件夹
    • --exclude "*.log":排除单个文件
  • --filter:过滤文件,比 --exclude 更加灵活
    • --filter "- node_modules/**":排除整个文件夹
    • --filter "+ *"

命令 ​

  • rlcone copy 复制文件到目标,不删除目标中的多余文件
  • rclone sync 单向同步到目标,会删除目标中的多余文件,使目标与源保持一致
  • rclone move 移动文件到目标,会删除源文件

Last updated:

Evoxt:Evoxt:
最便宜的亚太优化线路 —— 马来西亚 电信 GIA / 联通 9929 仅需 $3.32 起!
95 折优惠码AFF2377-DEV
🎉银河录像局:
Netflix / Spotify/ ChatGPT / Claude 等 AI 流媒体一站式合租平台!
95 折优惠码zhichao
关注微信公众号
优化线路
Evoxt

Evoxt

最便宜的亚太优化线路

马来西亚 电信 GIA / 联通 9929
优惠码:AFF2377-DEV

1C / 512MB / 5GB SSD / 150GB 流量

$3.32/月
优化线路
搬瓦工

搬瓦工

15 个机房自由切换

洛杉矶 DC6 机房
电信 / 联通 GIA + 移动 CMIN2

2C / 2GB / 40GB SSD / 1TB 流量

$49.99/季