Rclone备份网站和数据库到OneDrive教程

如果你打算长期运营网站,那么一定要做好网站数据的备份工作。

数据是无价的,它是你的互联网资产,丢失了就很难找回来。瓦力学长之前曾写过一篇初级备份教程,但那只是每天将网站和数据库备份的服务器磁盘。如果服务器出了问题,而你又没有将文件下载到本地电脑硬盘,同样会造成数据丢失。

前段时间买了台RackNerd性价比非常高VPS服务器,年付$15左右,打算将网站迁移过去。在迁移之前需要先做好数据备份工作,先利用宝塔面板将网站文件和数据库备份到服务器磁盘,然后用rclone同步备份文件到OneDrive网盘,实现双重备份。

这篇文章比较长,设置也有点繁琐。但设置成功后就会自动执行,以后就省心了。

一、准备工作

在教程开始之前,首先要做一些准备工作,主要有三点。

首先就是注册一个OneDrive网盘账号,如果你已经有了可以忽略这点。其次是根据初级备份教程,利用宝塔面板备份网站数据到服务器磁盘。最后是一句话带你认识Rclone这个软件,Rclone是个非常强大的云存储文件管理命令行程序。

二、安装Rclone

安装Rclone非常简单,远程登录VPS服务器后,只需执行一条命令:

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

安装成功后的提示如下图。

二、OneDrive授权

这一步是在本地电脑Windows系统操作,打开Rclone下载页面,点击下载Windows版本的Rclone软件,选择Intel/AMD-64Bit即可,如果是32位操作系统,那么选择32Bit的。

下载后将全部文件解压到D:\rclone文件夹,打开CMD命令窗口,依次输入下面两条命令。

cd /d d:\rclone
rclone authorize "onedrive"

第二条命令输入完回车后,会自动打开浏览器,登录你的OneDrive账号,点击“是”按钮同意授权。成功后返回CMD命令窗口就能看到一长串授权码,即花括号和里面的内容。复制下来保存备用,有效期1个小时。

三、配置Rclone

和安装相同,配置Rclone也只需要一条命令。不同的是后续操作比较繁琐,我们开始吧。在VPS远程登录窗口输入下面命令:

rclone config

新建远程网盘连接,输入字母n回车。

No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n

给远程网盘起个名字,因为我是RackNerd服务器备份到OneDrive网盘,输入名称rn2od

name> rn2od

接着会出现一系列网盘名字列表,我输入26选择OneDrive网盘。需要注意的是这个序号以后可能会有变动,填写的时候再次确认下。

Storage> 26

Client ID无需设置,直接回车使用默认的。

OAuth Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>

Client Secret也不用填写,回车使用默认值。

OAuth Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> 

选择OneDrive网盘服务器的区域,我用的是国际版输入1,如果你用的是世纪互联,那就输入4

Choose national cloud region for OneDrive.
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

不需要设置高级配置,输入n后回车

Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n> n

因为我们是远程连接VPS主机,不能自动配置,填写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> n

这时候将第二步获取的OneDrive授权码粘贴到result后面,回车。

Then paste the result below:
result>

选择OneDrive网盘,输入1

Choose a number from below, or type in an existing value
 1 / OneDrive Personal or Business
   \ "onedrive"
 2 / Root Sharepoint site
   \ "sharepoint"
 3 / Sharepoint site name or URL (e.g. mysite or https://contoso.sharepoint.com/sites/mysite)
   \ "url"
Your choice> 1

Rclone找到一个OneDrive盘,输入序号0回车。

Found 1 drives, please select the one you want to use:
0:  (personal) id=b15f4k3gbedede09
Chose drive to use:> 0

确认远程网盘信息,输入y

Found drive 'root' of type 'personal', URL: https://onedrive.live.com/?cid=b15f4k3gbedede09
Is that okay?
y) Yes (default)
n) No
y/n> y

确认OneDrive网盘的所有信息,输入y回车。

[rn2od]
type = onedrive
region = global
token = {"access_token":"EwBoA8l6BAAU6k7qJd7*3wELXHy......
drive_id = b15f4k3gbedede09
drive_type = personal
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

配置完成后Rclone显示远程网盘列表,至此配置结束,输入q退出。

四、编写同步脚本

这个脚本非常简单,首先输入下方命令新建同步脚本。

vi rclone.sh

按Insert键进入编辑模式,粘贴以下三条内容。

! /bin/bash
rclone sync /www/backup/database rn2od:rnbak/database
rclone sync /www/backup/site rn2od:rnbak/site

然后按Esc键退出编辑模式,输入:wq保存并退出。

忽略第一行,上面的脚本只包含两条命令,第二行是将/www/backup/database目录及里面的数据库备份文件,同步到OneDrive的rnbak/database文件夹里。第三行是同步网站备份文件。

接着为新建的脚本增加执行权限。

chmod +x rclone.sh

五、设置定时任务

脚本编写成功后,需要设置定时任务来运行脚本,才能完成自动备份。

在设置之前,首先将VPS服务器的时区设置为东八区,和我们作息相同。如果你是国内的VPS或云服务器一般不需要设置

cp /usr/share/zoneinfo/Asia/Chongqing /etc/localtime

输入y确定。

接下来我们设置定时任务,输入下方命令。

crontab -e

按Insert键进入编辑模式,在尾部添加一行即可。

35 1 * * *  /root/rclone.sh >> /root/rclone.log 2>&1

这行内容的意思是,每天凌晨1点35分,运行rclone.sh脚本,将网站和数据库备份文件同步到OneDrive网盘。

然后等到第二天,登录OneDrive盘就能看到备份文件已经同步过来了。

好了以上就是利用Rclone程序,将网站和数据库备份文件同步到OneDrive网盘的教程。这样VPS服务器和网盘都有网站备份,双重备份更安全。如果你不放心,还可以每周将Onedrive网盘里的文件手动下载到本地电脑。

最后再提醒下,建议每隔一段时间去Onedrive盘查看下同步是否正常,因为即使是Rclone程序也有可能出问题的。

类似文章