Bitwarden sqlite 数据库备份、同步到windows

Bitwarden sqlite 数据库备份、同步到windows

背景

bitwarden的保存的密码需要定期备份,并且同步到本地的WSL,避免意外原因导致全部密码丢失

步骤

bitwarden 调用sqlit的.back生产备份文件,wsl通过定时任务rsync同步到windows电脑

备份定时任务

我之前的搭建文章,data文件都在/srv/bitwarden,我需要备份/srv/bitwarden/srv/bitwarden

由于sqlite3存在事务,备份应该时调用sqlite3的.back生成备份文件

  • 安装sqlite3

在centos中,yum install sqlite3是无法找到包的,应该先查询一下正确的包名并下载

yum search sqlite3
yum install sqlite-devel.x86_64
  • 创建备份文件夹
sudo mkdir /srv/backup
sudo chmod go-rwx /srv/backup
  • 创建systemd service服务

File: /etc/systemd/system/bitwarden-backup.service

[root@deng srv]# cat /etc/systemd/system/bitwarden-backup.service
[Unit]
Description=backup the vaultwarden sqlite database

[Service]
Type=oneshot
WorkingDirectory=/srv/backup
ExecStart=/usr/bin/env sh -c 'sqlite3 /srv/bitwarden/db.sqlite3 ".backup backup-$(date -Is | tr : _).sq3"'
ExecStart=/usr/bin/find . -type f -mtime +30 -name 'backup*' -delete

ExecStart=/usr/bin/env sh -c ‘sqlite3 /srv/bitwarden/db.sqlite3 “.backup backup-$(date -Is | tr : _).sq3”’

sh -c :使用输入的作为shell脚本

backup-$(date -Is | tr : _).sq3 : 按日期生成文件名:backup-2022-08-08T04_00_04+08_00.sq3

ExecStart=/usr/bin/find . -type f -mtime +30 -name ‘backup*’ -delete

保留最近30天的文件

验证服务bitwarden-backup服务,可以生成文件

systemctl start bitwarden-backup.service
[root@deng backup]# ll -l /srv/backup/
total 1940
-rw-r--r-- 1 root root 397312 Aug  5 17:43 backup-2022-08-05T17_43_41+08_00.sq3
  • 创建systemd timer 定时任务

File: /etc/systemd/system/vaultwarden-backup.timer

[root@deng backup]# cat /etc/systemd/system/bitwarden-backup.timer
[Unit]
Description=schedule vaultwarden backups

[Timer]
OnCalendar=04:00
Persistent=true

[Install]
WantedBy=multi-user.target
[root@deng backup]#

启动定时任务

systemctl enable bitwarden-backup.timer
systemctl start bitwarden-backup.timer

定时任务检查

[root@deng backup]# systemctl status bitwarden-backup.timer
● bitwarden-backup.timer - schedule vaultwarden backups
   Loaded: loaded (/etc/systemd/system/bitwarden-backup.timer; enabled; vendor preset: disabled)
   Active: active (waiting) since Fri 2022-08-05 17:47:23 CST; 2 days ago
  Trigger: Tue 2022-08-09 04:00:00 CST; 11h left

Aug 05 17:47:23 deng systemd[1]: Started schedule vaultwarden backups.

文件已经备份成功

在这里插入图片描述

确认下载的sqlite可以打开

在这里插入图片描述

WSL rsync 同步本地

rsync同步到我的本地电脑

rsync -uav root@xxx:/srv/backup /mnt/c/Users/Administrator/SynologyDrive/backup/pass/bitwarden-sqlite3

在这里插入图片描述

定时任务,每小时一次到我的本地

dyq@DESKTOP-R6TRIIR:/etc/rsyslog.d$ crontab -l
0 */1 * * * rsync -uav root@xxx:/srv/backup /mnt/c/Users/Administrator/SynologyDrive/backup/pass/bitwarden-sqlite3 > /dev/null 2>&1 &

定时任务日志查看执行情况

在这里插入图片描述

查看本地文件,文件已经同步ok

在这里插入图片描述

后记

bitwarden 调用sqlit的.back生产备份文件,wsl通过定时任务rsync同步到windows电脑。完成

如果我有mac,是不是就可以直接在本地用linux的组件,有点爽

其他

unbutn的定时任务没日志

unbutn的定时任务日志默认没开启,可以开启日志定位

# 去掉cron.*开头的注释
sudo vim /etc/rsyslog.d/50-default.conf

 # 重启cron服务
 sudo service cron restart

参考

搭建文档

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值