背景
我的私人密码箱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
完成!