Featured image of post 给重要数据做一个自动备份

给重要数据做一个自动备份

背景

我的私人密码箱vaultwarden是部署在我的NAS上的,所以也会担心哪一天硬盘损坏了就完蛋,虽然可以用RAID进行冗余备份,今天我来薅个羊毛,用免费的Google Drive➕rclone工具实现自动备份

准备

Google账号授权

这一步是比较复杂的,没有开发经验的人可能相对会困难一点,希望我的记录可以有帮助

首先,登录console.cloud.google.com,创建一个项目(如果你还没有的话),然后点击"Enabled APIs & services", 激活Google Drive API。

然后,点击"OAuth consent screen"进行设置,最后一定要点“publish”进行发布

第三,点击“Credentials”添加鉴权,选择 OAuth 和Desktop,最后下载一个json文件,可以保存为credentials.json

配置rclone

rclone是用于同步各个网盘的命令行工具,功能非常强大,参考 https://rclone.org

下载安装可以参考https://rclone.org/downloads/之后,主要参考https://rclone.org/drive/进行配置

在提示“Use web browser to automatically authenticate rclone with remote?” 选择Y,这时会打开一个本地浏览器界面,如果提示“不安全。。。”等等,就点击文字左下角有个文字链接(叫高级或者Advanced)继续下去,这时会显示下图界面,点继续

然后会出现”Success“, 如下:

至此,rclone配置Google Drive就完成了

添加脚本

我用脚本进行打包压缩,并且实现上传

chmod +x rclone_backup.sh

rclone_backup.sh

#!/bin/bash

tar_file="$(date '+%Y%m%d-%H%M%S').tar.gz"
cd /home/shared/bitwarden
tar -czf ./back/$tar_file ./data

rclone copy ./back/$tar_file roo-g-drive:vaultbackup

#rm ./back/$tar_file

自动定时运行

我设置为每天0点运行一次

crontab -e
0 0 * * * /home/shared/bitwarden/rclone_backup.sh

完成!

By 大可出奇迹