Loading...

文章背景图

BorgBackup:去重加密备份程序|部署与使用全指南

2026-11-02
0
- 字
- 分钟
|

BorgBackup · 去重加密备份程序 · 中文部署与使用全指南

项目仓库: https://github.com/borgbackup/borg

开源协议:BSD 3-Clause · 实现语言:Python + C/Cython · 平台:Linux / macOS / FreeBSD / Windows(实验性) · 形态:单文件二进制 / 包 · 远端协议:ssh / http(s) / sftp / s3 / b2 / rclone

说明:BorgBackup 官方 README 未提供 logo 或界面截图,按规程本篇不设封面、正文不强配图。 版本提示:仓库 master 是 Borg2(beta),官方明确 "DO NOT USE BORG2 FOR YOUR PRODUCTION BACKUPS",生产请用稳定的 Borg 1.x 发布版。


1 项目简介

BorgBackup(简称 Borg,仓库名 borgbackup/borg)是一个去重备份程序:可选压缩与认证加密。它用内容定义分块(content-defined chunking)做去重,每次备份只存从未见过的数据块,因此适合每天备份。认证加密让它适合备份到不完全可信的目标。

1.1 核心信息一览

项目项 内容
项目名称 BorgBackup(Borg)
仓库地址 github.com/borgbackup/borg
项目定位 去重、压缩、加密的备份程序
开源协议 BSD 3-Clause
实现语言 Python + C/Cython(性能关键路径 SIMD)
去重算法 内容定义分块,id_hash 用 HMAC-SHA256 / Blake3
加密 256 位认证加密(AES-OCB / chacha20-poly1305)
压缩 lz4 / zstd / zlib / lzma
远端 ssh:// / http(s):// / sftp:// / s3:// / b2:// / rclone:
单文件二进制 Linux x86_64/arm64、macOS、FreeBSD、Windows

1.2 适用场景

  • 每天增量备份大量数据,靠去重省空间。
  • 备份到不完全可信的远端(对象存储、共享服务器),需要客户端加密。
  • 想把备份仓库挂载成文件系统,用文件管理器交互式浏览恢复。

1.3 能力边界(官方口径)

  • 去重不依赖文件名 / 时间戳 / 块位置不变——移动文件、大文件小改、块移位都不影响去重。
  • master 分支为 Borg2 beta,不要用于生产备份;生产用稳定 1.x 发布版。

2 功能特性

  • 空间高效:内容定义分块去重,跨机器 / 跨备份共享同一块仓库。
  • 快:C/Cython + SIMD 关键路径、本地缓存、快速识别未修改文件。
  • 数据加密:客户端 256 位认证加密;也有仅认证模式(authenticated-sha256 / authenticated-blake3)。
  • 压缩:lz4(超快低压缩)、zstd(宽区间)、zlib、lzma。
  • 异地备份:ssh / http(s) / sftp / s3 / b2 / rclone 多协议。
  • 可挂载:备份归档可挂载为用户态文件系统浏览。
  • 单文件二进制:免安装直接跑。

3 官方界面预览

Borg 是纯命令行工具,无图形界面,按规程不配图。官方网站有演示视频。

4 官方跳转链接汇总

类别 链接 说明
仓库主页 https://github.com/borgbackup/borg 源码与 README
官网 borgbackup.org 项目信息、版本化文档、演示视频
安装手册 installation.html 各平台安装
Release releases 稳定版 / beta
PyPI pypi.org/project/borgbackup Python 包
安全联系 support.html#security-contact 漏洞报告

5 前置要求

  • 安装 Borg(单文件二进制或发行版包 / pip)。
  • 远端备份时目标机需能 ssh(且若用 ssh 性能模式,目标机也要装 borg)。
  • 选好加密口令并安全保管。

6 方式一:快速上手(本地仓库)

export BORG_REPO=/path/to/repo

# 创建仓库(加密方式:aes256-ocb,密钥放仓库内)
borg repo-create --encryption=aes256-ocb --key-location=repokey

# 创建归档
borg create docs ~/Documents

# 再次备份,看去除重复后的实际大小
borg create -v --stats docs ~/Documents

官方示例输出:

Archive name: docs
Number of files: 24
Original size: 29.73 MB
Deduplicated size: 520 B

7 方式二:远端备份

# ssh 远端(REST-over-ssh)
export BORG_REPO=ssh://user@host/./path/to/repo

# 也支持 s3:// / b2:// / rclone: 前缀

注意:要获得 ssh 模式的显著性能提升,目标仓库服务器上也要安装 borg(远端 agent 模式)。

8 配置项说明

  • BORG_REPO:仓库路径 / URL。
  • 加密:--encryption(aes256-ocb / chacha20-poly1305 / authenticated-*)、--key-location(repokey 或 keyfile)。
  • 哈希:HMAC-SHA256 或 Blake3;压缩:lz4 / zstd / zlib / lzma。
  • 分块器:fastcdc(默认)、buzhash64、AES 系列、fixed。

9 常用运维命令

borg repo-create ...     # 建仓库
borg create ...           # 建归档
borg list                 # 列归档
borg extract              # 恢复
borg mount /mnt/borg      # 挂载浏览
borg prune                # 按策略清理旧归档
borg check                # 校验仓库

10 常见故障排查

  • 用了 Borg2 beta 出问题:官方明确 beta 勿用于生产;换稳定 1.x 版本。
  • 忘了口令 / 丢了 keyfile:数据不可恢复,务必离线备份 key。
  • ssh 备份慢:确认远端机器也装了 borg(远端 agent),否则退化为普通转发。
  • 去重不如预期:确认用同一仓库;Borg 跨归档共享块。

11 风险与合规说明

  • BSD-3-Clause 许可;master 为 Borg2 beta,生产务必用稳定 1.x 发布版。
  • 加密口令与密钥是唯一凭证,离线安全保管;备份到不可信目标前先在本地加密。
  • 本文命令来自官方 README(master/beta 文档),稳定版命令名可能略有差异,以官网版本化文档为准。
评论交流

文章目录