备份神器 Rclone 安装与配置:定时备份数据至云存储(以 OneDrive 为例)
Rclone 是一个支持 70 多种云存储的备份工具,包括常见 S3 对象存储、WebDav、OneDrive 网盘等。设置好对应云存储后,只需通过等简单的命令,即可将本地文件同步至云存储中。
本文首发于只抄博客,欢迎点击原文链接了解更多内容。
前言
Rclone 是一个支持 70 多种云存储的备份工具,包括常见 S3 对象存储、WebDav、OneDrive 网盘等。设置好对应云存储后,只需通过 rclone copy
等简单的命令,即可将本地文件同步至云存储中
安装
Rclone 的安装十分简单,可以选择官方提供的一键脚本一直安装,也可以直接下载二进制文件手动运行,选择其中一种方式即可
一键脚本
curl https://rclone.org/install.sh | sudo bash
手动安装
- 进入官方文档下载对应平台架构的二进制文件
- 将 rclone 文件移动到
/usr/bin
目录 - 赋予权限
chmod 755 /usr/bin/rclone
配置 Rclone
Rclone 有提供官方的配置向导,根据提示填写对应的内容,即可生成配置文件;如果对 Rclone 配置比较熟悉的则可以直接编辑配置文件。下面分别用配置向导添加 OneDrive 网盘和配置文件直接添加 Minio S3 对象存储来进行演示
配置向导
-
输入
rclone config
-
输入字母 n,来新增一个云存储
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>
- 给云存储起个名字 (后续用命令行操作时会用到)
Enter name for new remote.
name> onedrive
- 接着会出现支持的云存储列表,输入 33 来选择 OneDrive (以实际显示的顺序为准)
33 / Microsoft OneDrive
\ (onedrive)
- Client Id 和 Client Secert 可以直接回车使用默认值
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>
- 选择 OneDrive 的类型,一般输入 1 选择 Microsoft Cloud Global
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)
- 高级设置,输入 n 跳过
Edit advanced config?
y) Yes
n) No (default)
y/n>
- 下面需要打开 OneDrive 网页给 Rclone 授权,由于一般的 Linux 机器没有浏览器,所以输入 n
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
- 关键步骤:我们需要在 Windows 上也下载一个 Rclone,然后在 Rclone 的目录运行
.\rclone.exe authorize "onedrive" "xxxxxxxxxxxxxx"
后会弹出浏览器,登录 OneDrive 账号后,命令行中会显示出授权码,将其填入下方的 config_token 中即可
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>
- 后续步骤一路 y 即可,这样 OneDrive 就添加到我们的 Rclone 中了
配置文件
输入 rclone config
后,会在 .config/rclone
目录中生成一个 rclone.conf 文件,如果我们熟悉 Rclone 配置的话,也可以直接新建编辑该文件,同样是可以生效的
以配置 Minio 为例,参照官方文档的 S3 对象存储部分,通过 vim .config/rclone/rclone.conf
编辑该文件,直接在其中填入云存储的相关配置信息即可
[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 桶中,其中 : 前的代表上面配置的云存储,后面的代表文件夹名或者桶名
rclone copy /path/to/files minio:bucket
定时任务
除此之外,我们还希望 Rclone 能定时运行,将文件备份到指定的云存储,这时候就需要用到 Linux 的 crontab 了
- 新建一个 sh 脚本,例如 rclone.sh,然后将上述的备份命令写入其中
#!/bin/bash
rclone copy /path/to/files minio:bucket
- 赋予运行权限
chmod 755 rclone.sh
- 添加定时任务
crontab -e
0 0 * * * /root/rclone.sh >> /root/rclone.log 2>&1
- 保存后,每天的 0 点,就会自动运行 rclone.sh 脚本,将文件备份到我们指定的云存储中了
更多推荐
所有评论(0)