Borg 备份
BorgBackup (简称: Borg) 是一款重复数据删除备份程序。 可选地,它支持压缩和认证加密。
Borg 的主要目标是提供一种高效且安全的数据备份方式。 使用的数据重复数据删除技术使 Borg 适用于日常备份,因为只存储更改的内容。 认证加密技术使其适用于备份到非完全信任的目标。
安装
安装 borg 软件包。 下一个主要版本版本 2,以 beta 版形式提供,软件包为 borg2AUR。 开发版本以 borg-gitAUR 提供。
对于其他功能,请安装以下软件包
- python-llfuse
- 用于挂载归档
- openssh
- 用于连接到远程主机
- borgmatic
- 一组包装脚本,用于通过 YAML 文件而不是终端命令控制 Borg (borgmatic, (网站)
- borgctlAUR
- borgbackup,无需 bash 脚本 - 类似于 borgmatic,但功能集略有不同 (borgctl)
- pika-backup
- 一个基于 libadwaita/GTK4 的 Borg GUI
- vorta
- 一个基于 Qt 的 Borg GUI
- borgtui-gitAUR
- 用于定期计划备份的 TUI 和 CLI
如果您希望备份到与数据源不同的机器,则另一台机器(“服务器”)也需要安装 borg。 为了方便创建和管理备份,服务器管理员可以利用
- borgwarehouseAUR
- 用于 Borg 中央仓库服务器的 WebUI,与 https://www.borgbase.com/ 提供的付费服务类似。
- borgreportAUR
- 获取关于仓库的报告,其中包含统计信息、警告和错误消息(可选地通过电子邮件),并导出 OpenMetrics。
文档
官方文档包括快速入门指南。 本地文档可以在 borg(1) 和 apropos borg
中找到。
此外,可以通过命令找到指导,一般为
$ borg help
或针对特定命令
$ borg help command
用法
Borg 背后的主要概念是去重:与传统 TAR 归档中累积文件不同,去重通过哈希文件来验证文件的身份,而不管其名称如何,以便它们只被复制一次。 这意味着即使没有压缩,对于重复的增量备份,它也只占用最少的空间。
文件压缩是可选的,并支持多种算法(推荐使用 zstd)和强度。
使用 Borg 创建的归档可以作为 FUSE 文件系统挂载,以用于浏览和恢复单个文件。
归档可以在本地创建,也可以在使用 SSHFS、NFS、Samba 或类似挂载解决方案的远程系统上创建。 支持通过 SSH 传输,但远程主机必须安装 Borg。
创建仓库
Borg 仓库可以加密或进行防篡改。 有关模式和选项的更多信息,请查阅关于设置仓库的官方文档。
要创建没有加密或身份验证的 Borg 仓库
$ borg init --encryption=none /path/to/repo
创建归档
可以使用 borg create
命令在仓库中创建单独的归档实例。 每个归档都必须给定一个唯一的名称。 Borg 包括占位符列表,以使添加日期、时间、用户名和主机名等字符串更容易。
要使用源机器的主机名和当前日期创建 archivable-dir
目录的归档
$ borg create /path/to/repo::{hostname}-{now:%Y-%m-%d} archivable-dir
Borg 支持广泛的包含和排除选项。 要从归档中排除 .pyc
文件
$ borg create ... --exclude '*.pyc' /path/to/repo::archive-name
更多信息可以在 borg create
文档页面上找到。
修剪归档
旧归档的删除不会自动执行,但可以使用 borg prune
命令手动执行。 必须指定要保留的归档数量,并且可以按归档的创建时间进行限制。
要仅保留最近 7 个每日归档、最近 4 个每周归档和最近 3 个每月归档
$ borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=3 /path/to/repo
要仅保留最近 10 个归档,无论它们何时创建
$ borg prune --keep-last=10 /path/to/repo
要保留过去 30 天内的所有归档,无论包含多少个归档
$ borg prune --keep-within=30d /path/to/repo
borg compact
命令。--prefix
或 --glob-archives
标志的限制。更多信息可以在 borg prune
文档页面上找到。
从归档恢复
要从归档恢复
$ borg extract /path/to/repo::archive-name path/to/restore
/home/archuser/path/to/restore
将导致完整的恢复路径为 /home/archuser/home/archuser/path/to/restore
。或者,可以挂载仓库以进行交互式恢复
$ borg mount /path/to/repo::archive-name
技巧和诀窍
缓存排除
可以通过排除缓存目录来减小归档的大小。 遵循缓存目录标记标准的目录可以通过在归档创建命令中附加 --exclude-caches
来自动排除
$ borg create ... --exclude-caches /path/to/repo::archive-name
列出受影响的文件
Borg 中的许多操作都支持 --list
标志来列出受影响的文件或归档。 如果与 --dry-run
配对使用,用户可以验证给定命令的效果。