自动备份Bitwarden数据库
今天是小年夜,按照我们那的习俗,过了腊月廿四就天天都是年了。
数据无价!如果用来保存密码的数据库损坏了,你会不会抓狂?这种事情就让我遇上了,之前一直用的好好的 Bitwarden
前些天突然不能同步,查询日志发现
1 | [2021-01-13 04:09:32.760][panic][ERROR] thread 'main' panicked at 'Failed to turn on WAL: DatabaseError(__Unknown, "database disk image is malformed")': src/main.rs:232 |
SQLite,你不讲武德啊!
还好前几天备份过 db.sqlite3
,不然可就麻烦大了。不过还是损失了中间几天的数据,所以一定要想办法搞定自动定时备份数据库。
github
上有个开源的脚本可以实现我想要的功能,脚本地址:https://gist.github.com/vitobotta/3a6c53c3693ff77cd0c920d0a541622d#file-bitwarden_rs-backup-sh-L25
唯一要修改的是 parent_dir
的值,这是 bitwarden-rs
的数据库目录,请根据你的实际情况填写。
我的 bitwarden-rs
数据库在 /docker/bitwarden
目录,右键属性可以获得完整的路径。
虽然目录中有密钥文件和网站图标缓存,但以下脚本只备份数据库文件
及attachments
目录 。
1 |
|
将上面的内容复制到了一个新建的空的文本文件中,保存后重命名为
sqlite_backup.sh
,将其上传到/docker/bitwarden
目录。在
/docker/bitwarden
目录中新建文件夹backups
,这个文件是用来保存备份文件的。
- 在
控制面板
中进入任务计划
,新建用户定义的脚本
常规
中设定任务名称,用户账号用默认的root
计划
按你实际的需要来,我的使用频度不高,所以设置成了每天运行一次
如果你希望每天多备份几次,也可以像下图这样
这意味着每天早上8点开始,每四个小时备份一次,直到下午8点结束,也就是在8点、12点、16点和20点运行,这样每天会生成4个备份文件
任务设置
中设置了邮件地址,这样可以获得运行的状态,命令中填入了脚本的地址
- 选中脚本右键
运行
来做测试
- 如果一切正常,会收到一封这样的邮件
- 在
backups
目录中我们可以找到备份的文件
- 下载备份文件,并重命名为
backup.tar.gz
,用解压缩软件解开,可以看到备份的内容
这回再也不用担心数据库损坏了。
参考文档
使用Docker搭建Bitwarden密码存储服务器并定时备份数据库 - 韩艺博的博客
地址:https://www.hanyibo.com/linux/bitwarden-docker-nginx-Proxy.htmlBitwarden_rs db/attachments backup
地址:https://gist.github.com/vitobotta/3a6c53c3693ff77cd0c920d0a541622d#file-bitwarden_rs-backup-sh-L25用Bitwarden自建密码管理系统 | 老苏的blog
地址:https://laosu.ml/2020/07/18/%E7%94%A8bitwarden%E8%87%AA%E5%BB%BA%E5%AF%86%E7%A0%81%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/