前两天自建了一个bitwarden_rs,还差个备份的方案,我考虑了一下最后选择用borgbackup。
borgbackup可以删除重复数据,还支持zstd压缩,可以节省很多存储空间,所以就用它了。。
需要备份数据的机器(以下简称A)和用来存储备份数据的机器(以下简称B)都需要安装borgbackup:
apt -y update apt -y install wget wget https://github.com/borgbackup/borg/releases/download/1.1.15/borg-linux64 mv borg-linux64 /usr/local/bin/borg chmod +x /usr/local/bin/borg
在B机器上创建一个用户并修改密码:
useradd -m -s /bin/bash borgbackup passwd borgbackup
默认情况下用户的主目录创建在/home下,这个目录也是后续我们存储备份数据的目录。
如果你需要更改这个用户的主目录,在创建用户的时候使用下面的命令:
useradd -m -d /var/borgbackup -s /bin/bash borgbackup
在A机器上生成SSH密匙对:
ssh-keygen -t ed25519
把A机器的公钥拷贝到B机器:
ssh-copy-id borgbackup@1.2.3.4
borg支持加密,所以在创建存储库的时候可以选择加密还是不加密。
我是用来备份bitwarden_rs的数据,原始数据已经是加密过的了,所以没有必要再进行加密。
使用下面的命令在机器A上创建一个没有加密的初始存储库:
borg init -e none borgbackup@1.2.3.4:/home/borgbackup/bitwarden_rs
如果你要加密的话也可以,就是恢复数据的时候比较麻烦,因为它需要你同时拥有密钥和密码才能恢复,这里我也记录一下。
使用下面的命令创建加密存储库:
borg init -e keyfile borgbackup@1.2.3.4:/home/borgbackup/bitwarden_rs
此时会让你配置一个密码:
Enter new passphrase: Enter same passphrase again: Do you want your passphrase to be displayed for verification? [yN]:
这个密码如果你忘记了,你的数据也就GG了,所以密码要妥善保管。
除此之外,你还需要把密钥备份出来,因为之前说过恢复数据的时候光有密码是不够的还需要密钥:
borg key export borgbackup@1.2.3.4:/home/borgbackup/bitwarden_rs ~/key
上面这条命令会将你的密钥备份到当前用户的主目录下,命名为key。这个文件你也需要妥善保管,建议备份到多个位置,例如手机、电脑、网盘、U盘。
假设某一天你的密钥丢了,将你备份的密钥传到机器A上面,使用下面的命令重新导入:
borg key import borgbackup@1.2.3.4:/home/borgbackup/bitwarden_rs ~/key
做完上面这些之后,现在我们可以尝试进行第一次备份了:
borg create --compression zlib,9 borgbackup@1.2.3.4:/home/borgbackup/bitwarden_rs::20210305 /opt/bitwarden_rs
上面这条命令备份了机器A的/opt/bitwarden_rs目录,备份名称20210305,使用了zlib压缩方法,压缩等级9(最高压缩率)
查看全部备份:
borg list borgbackup@1.2.3.4:/home/borgbackup/bitwarden_rs
查看某一个备份,例如刚才备份的20210305:
borg list borgbackup@1.2.3.4:/home/borgbackup/bitwarden_rs::20210305
恢复备份:
borg extract borgbackup@1.2.3.4:/home/borgbackup/bitwarden_rs::20210305
删除备份:
borg delete borgbackup@1.2.3.4:/home/borgbackup/bitwarden_rs::20210305
关于恢复备份官方还有一个mount的命令,大概意思就是把远程存储库直接挂载到本地上,我没有试过这种方法,看官方的介绍,这个方法似乎没有extract好用:
https://borgbackup.readthedocs.io/en/stable/quickstart.html#restoring-a-backup
另外还有一个prune的命令,这个是修剪备份的数据,如果备份的数据很多,用delete命令的话就不太方便了,此时可以用prune:
https://borgbackup.readthedocs.io/en/stable/usage/prune.html
lala你的聊天室又没了。。。
大佬,可以备份WordPress 吗?
当然可以。。。
怎么实现脚本自动部署?每次手动备份未免有点繁琐https://lala.im/wp-content/plugins/wp-alu-master/static/img/icon_mad.gif
lala,看得一头雾水啊,1.2.3.4是A机的IP还是B机的IP啊?
是B机的IP哦。