BY Borg

Borgbackup | 优异的Linux备份软件(使用指北)

指南 | Guides Sep 5, 2024

First

What is Borgbackup | 啥是 Borg ?

BorgBackup,通常简称为 Borg,是一个高效的去重备份工具,专为 Unix/Linux 系统设计。它的主要特点包括数据压缩、加密、去重以及高效的远程备份能力。BorgBackup 的设计目标是提供一种安全、快速、可靠的备份解决方案,适用于本地和远程备份场景。

上述描述来自ChatGPT

OS & SW Version

OS

SW

Install | 安装

绝大多数发行版可以直接使用包管理器安装Borgbackup

Debian

	
apt install borgbackup

openSUSE

zypper in borgbackup

Fedora/RHEL

dnf install borgbackup

Use | 使用

backup | 备份

borg init | 初始化

borgbackup有仓库的概念

可以简单理解为其的根据地

后期会将所有的备份文件全部存储至指定的仓库内

使用borg init命令初始化仓库

borg init -e repokey-blake2 /#仓库路径
    
# -e 指定加密类型  
    
# borg 加密分为密码和密钥 repokey 则为将密钥存储在存储库中
    
# blake2则为加密算法
    
# 上述过程需要输入密码   请牢记此密码   丢失后则无法访问所有备份文件

### !!!一旦加密完成 将无法更改加密模式  并且一个存储库有且只有一种加密方式!!! ###

Borg默认开启增量备份

borg create | 创建备份

使用 borg create 创建备份

# 示例

borg create /path/to/repo::my-documents ~/Documents

# 备份~/Documents文件夹并把其命名为my-documents

# 进阶

/usr/bin/borg create --progress --stats /home/borgbackup::ALL_DISK-$(date +\%Y-\%m-\%d) / --exclude /mnt --exclude /proc --exclude /sys --exclude /dev --exclude /tmp --exclude /run --exclude /var/cache --exclude /var/tmp --exclude /lost+found --exclude /home/borgbackup --exclude /.snapshots

# 显示进度和状态 备份/分区并排除自定义目录且将备份文件按照ALL_DISK-data格式命名
# 其中 --one-file-system 参数仅备份当前文件系统  并不会备份挂载的任何文件系统
例如并不会挂载nfs或者其他驱动器挂载的目录

恢复

borg extract | 提取备份文件

# 示例

borg extract /path/to/repo::my-files的所有文档

# 提取/path/to/repo存储库中名为my-files的所有文档

# 进阶

borg extract --stdout /home/borgbackup::ALL_DISK-2024-08-27 etc/haproxy/haproxy.cfg > /etc/haproxy/haproxy.cfg

# 提取/home/borgbackup存储库中名为ALL_DISK-2024-08-27的文件路径etc/haproxy/haproxy.cfg并将其恢复至当前/etc/haproxy/haproxy.cfg

需要注意的是borg默认提取文件至当前目录 所以请在使用borg extract命令时cd到指定目录 若需要恢复单个文件或者检查整个备份文件 建议使用mount挂载borg存储文件至文件系统后使用rsync等工具直接复制迁移

Other | 其他

borg list | 列出

使用borg list可以列出想要知晓的内容

borg list /path/to/repo

borg prune | 修剪

如果按照每天备份的频率而不进行清理的话 备份文件将会显得杂乱无章

这里我们可以使用borg prune命令来对备份文件进行修剪清理

borg prune -v --list --dry-run --keep-daily=7 --keep-weekly=4 --keep-monthly=-1 /path/to/repo

# 修剪/path/to/repo下的备份文件,留存过去七天&每周一份&月末档案 将其余的修剪掉

# 这里强烈建议加上--dry-run让其展示运行结果但不实际运行  确认没问题后去掉此参数即可

注意在borg中,无论是delete还是prune对文件做删除操作 均需要运行borg compact才可释放空间

borg mount | 挂载备份

前面说过如果需要恢复多个单个文件或对备份的整个目录进行审视建议使用borg mount挂载至文件系统后进行后续操作

borg mount /path/to/repo /tmp/mymountpoint

# 将/path/to/repo存储库挂载至/tmp/mymountpoint目录下

Ex | 拓展

&Crontab

我们可以结合crontab实现定时定量备份

但当我们创建或查看或列出备份时 Borg均会要求我们输入仓库密码

似乎使用crontab又变得不可行了

Borg早就考虑到了这个问题

我们可以使用BORG_PASSCOMMAND='cat ~/.borg-passphrase'将其指定给Borg shell

其中~/.borg-passphrase文件存有BorgPassword

BORG_PASSCOMMAND='cat ~/.borg-passphrase' borg list /path/to/repo

比葫芦画瓢 则我们可以在crontab中这样写

00 18 * * * BORG_PASSCOMMAND='cat ~/.borg-passphrase' borg create /path/to/repo::my-documents ~/Documents

# 在每天的18:00备份~/Documents至/path/to/repo仓库并命名为my-documents

注意borg-passphrase文件的赋权 请禁止普通用户访问此文件

ALL Over | 总结

borg 是一款非常易用且快速的备份软件

定期备份以确保你的Linux安全无虞

Copy | 抄袭

标签

xzllll

三分钟热度三分钟收获