通过BorgBackup自动化备份网站到远程服务器

通过BorgBackup自动化备份网站到远程服务器

💡 原文中文,约1800字,阅读约需5分钟。
📝

内容提要

BorgBackup是一个开源的、去重的、压缩的、加密的备份程序,提供高效、安全的数据备份。本文介绍了BorgBackup自动化备份网站的过程,包括安装、创建repo、设置SSH密钥对、配置脚本、定时任务、提取备份文档等步骤。

🔎

延伸解读

备份架构与网络要求

本文采用A服务器(网站服务器)向B服务器(备份服务器)推送备份的架构。B服务器需开放SSH端口给A服务器,这是实现远程备份的前提。这种设计将备份数据与生产环境分离,避免单点故障导致数据丢失。同时,A服务器需通过SSH密钥对认证,以便自动化脚本无需人工干预即可连接B服务器。

加密与密钥管理

BorgBackup支持加密,本文使用repokey模式初始化仓库,需设置密码。自动化脚本中通过BORG_PASSPHRASE环境变量提供密码,这意味着密码以明文形式存储在脚本中,存在安全风险。建议限制脚本权限,并确保B服务器上backupuser用户仅拥有必要权限。此外,SSH密钥对未设密码,进一步降低了安全性,需妥善保管私钥。

自动化与保留策略

通过cron定时任务每天凌晨1点执行备份脚本,实现自动化。脚本中使用borg create创建备份,并通过borg prune --keep-within 30d自动删除30天前的备份,防止磁盘空间耗尽。这种保留策略平衡了存储成本与恢复需求,但需注意备份频率与保留期限应根据实际数据变化率和合规要求调整。

恢复操作与路径处理

恢复时,可从B服务器提取备份并打包为zip,或直接在A服务器拉取档案。使用borg extract时,--strip-components选项可移除路径前缀,便于将文件恢复到指定位置。例如,移除3个路径组件后,/www/wwwroot/test/myfile.txt将变为myfile.txt。恢复前应确认目标路径,避免覆盖现有文件。

❓

Q&A

BorgBackup是什么?

BorgBackup是一个开源的、去重的、压缩的、加密的备份程序,提供高效、安全的数据备份。

如何在服务器上安装BorgBackup?

在服务器上使用命令:sudo apt-get update 和 sudo apt-get install borgbackup进行安装。

如何设置SSH密钥对以实现自动化备份?

在A服务器上使用命令ssh-keygen生成SSH密钥对,并将公钥复制到B服务器。

如何配置定时任务以自动运行备份脚本?

打开当前用户的crontab文件,添加一行定义cron任务,例如:0 1 * * * /path/to/your/script.sh。

如何从B服务器提取备份文档?

使用命令borg extract --strip-components 3 /path/to/repo::my-backup提取备份文档。

BorgBackup的备份脚本需要包含哪些内容?

备份脚本需要定义备份源和目标、设置BORG_PASSPHRASE环境变量、创建备份和删除旧备份。

🏷️

标签

➡️

继续阅读