最近两天cloudcone的Virtualizor被黑,导致用户vps数据被加密/删除并受到勒索。我有一个吃灰的小鸡,不知道为什么我没有收到通知邮件。
我目前没有定时备份的、丢失数据后最恶心的估计就是matrix了,而且我部署matrix使用的vps商家也是用Virtualizor的。搜索后发现可以使用borg备份。borg算一种类似timemachine的增量备份,并且可以通过二进制文件在虚拟主机运行,看起来方便且划算。
1. 在备份机下载borg
mkdir borg
cd borg
wget -O borg https://github.com/borgbackup/borg/releases/download/1.4.3/borg-linux-glibc231-x86_64
chmod +x borg
./borg --version
2. 在matrix vps 保存ssh信息
生成一个sshkey,不需要passphrase
ssh-keygen -t ed25519
认证一次
ssh-copy-id -p 端口 -i ~/.ssh/id_ed25519.pub 用户名@存储vpsip
获取私钥,之后放到ansible的vars.yml
cat /root/.ssh/id_ed25519
3. 在ansible机添加borg配置
nano inventory/host_vars/matrix.你的域名.com/vars.yml
在末尾附加以下内容,使用 openssl rand -base64 32 生成需要的密码
# ==========================================
# 异地备份配置 (BorgBackup) - 添加到文件末尾
# ==========================================
backup_borg_enabled: true
# 备份仓库地址
# 格式语法: ssh://用户名@IP:端口/./相对路径
# 这里配置为存放在 matrixbackup 用户主目录下的 matrix-backup 文件夹中
backup_borg_repositories:
- path:"ssh://matrixbackup@123.45.67.89:23432/./matrix-backup"
label: "123123" # (可选) 给仓库起个标签,方便看日志
# Borg 加密密码 (非常重要!)
# 这是你的"最后一道防线"。即使黑客攻破了你的备份服务器,没有这个密码也无法还原数据。
# 请务必生成一个随机字符串并保存到你的 1Password/Bitwarden 中。
backup_borg_storage_encryption_passphrase: "这里填写一个复杂的随机密码不要用123456"
# 备份计划 (默认是每天凌晨),这里可以不改,使用默认即可
# backup_borg_schedule: "*-*-* 04:00:00"
# 自动修剪策略 (默认保留最近7天,4周,6个月) 半年生成大概15个备份点
backup_borg_prune_keep_daily: 7
backup_borg_prune_keep_weekly: 4
backup_borg_prune_keep_monthly: 6
# 忽略 SSH 指纹检查 (为了自动化方便,建议加上此行)
# 加上这个参数后,Ansible 第一次连接备份服务器时不会询问 "Are you sure..."
backup_borg_ssh_extra_args: "-o StrictHostKeyChecking=no"
# 填入你刚才 cat 出来的私钥内容
# 注意:
# 1. 竖线 "|" 后面不能有字符
# 2. 密钥内容的每一行必须比 "backup_borg_ssh_key_private" 多缩进两个空格
backup_borg_ssh_key_private: |
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAAC...
...
...tCAF+C5v/Q==
-----END OPENSSH PRIVATE KEY-----
运行部署
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
4. 在matrix服务器测试
运行一次备份任务进行测试
# 进行一次备份
systemctl start matrix-backup-borg.service
# 查看日志
journalctl -fu matrix-backup-borg.service
# 查看下次运行时间
systemctl list-timers matrix-backup-borg.timer
# 查看已有的备份数量
/matrix/backup-borg/bin/borgmatic list
# 查看具体的备份信息
/matrix/backup-borg/bin/borgmatic info --archive matrix-2026-01-31-12345
![图片[1]-Matrix 使用 BorgBackup 自动备份-THsInk](https://www.thsink.com/wp-content/uploads/2026/02/截屏2026-02-01-07.40.24-1024x246.png)
5. 恢复备份
还未尝试,虽然我知道我应该测试一下,但我太懒了,下次一定
参考文档
https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg/blob/main/docs/configuring-backup-borg.md
https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-backup-borg.md
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END








暂无评论内容