当前位置: 首页 > article >正文

如何在 Ubuntu 22.04 上部署 BorgBackup 并实现自动化备份教程

简介

BorgBackup,也称为 Borg,是一个强大的、具有去重功能的备份程序,专为效率和安全性而设计。它提供了诸如压缩和身份验证加密等高级功能,使其成为可靠备份的理想选择。本教程提供了一个关于在 Linux 系统上安装、配置和自动化 BorgBackup 的综合指南。

从初始化备份存储库到使用 cron 调度自动化备份,你将学习如何无缝地保护你的数据。此外,本教程还涵盖了用于优化备份性能、排除特定文件和管理加密密钥的高级命令。通过遵循这些详细步骤,你可以确保你的数据被持续备份并且易于恢复。

安装和配置步骤

第一步:安装 BorgBackup

首先,你需要在你的系统上安装 BorgBackup。

在 Ubuntu 上:

sudo apt update
sudo apt install borgbackup

在 CentOS/AlmaLinux/RHEL 上:

sudo dnf update -y
sudo dnf install epel-release
sudo dnf install borgbackup

第二步:初始化备份存储库

在创建备份之前,你需要初始化一个存储备份的存储库。这可以在本地机器或远程服务器上。

本地存储库:

borg init --encryption=repokey /path/to/backup/repo

远程存储库:

borg init --encryption=repokey user@remote.server:/path/to/backup/repo

说明:

  • borg init: 初始化一个新的 Borg 存储库。
  • -encryption=repokey: 使用存储在存储库中的密钥加密备份。

第三步:创建备份

要创建备份,请使用 borg create 命令。这是一个备份你的 /home 目录的示例。

borg create --stats /path/to/backup/repo::backup-{now:%Y-%m-%d} /home

它会要求你输入在初始化 borg 存储库时输入的密钥密码。

说明:

  • borg create: 创建一个新的备份。
  • -stats: 显示有关备份过程的统计信息。
  • /path/to/backup/repo::backup-{now:%Y-%m-%d}: 指定存储库和存档名称。{now:%Y-%m-%d} 将被替换为当前日期。
  • /home: 要备份的目录。

使用 Cron 自动化备份

首先,我们需要初始化一个存储备份的存储库。执行以下命令:

borg init --encryption none /path/to/backup/repo

注意: 我们使用了 --encryption none。如果我们使用其他加密方式,它将无法与 crontab 一起使用。我们没有找到任何可以与 crontab 一起使用的其他加密方式的指南。基本上,如果我们使用加密,它会要求输入密码。因此它无法在 crontab 中用于自动备份过程。

为了自动化备份过程,我们可以创建一个备份 bash 脚本并将其添加到 crontab 中。

nano backup_files.sh

添加以下内容:

#!/bin/sh
/usr/bin/borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6 /path/to/backup/repo
/usr/bin/borg create --stats /path/to/backup/repo::backup-{now:%Y-%m-%d-%s} /home

保存并退出文件。

说明:

  • borg prune: 修剪存储库中的旧存档。基本上,它会删除旧备份并进行新备份。你可以调整备份的数量。
  • -keep-daily=7: 保留最近 7 天的每日备份。
  • -keep-weekly=4: 保留最近 4 周的每周备份。
  • -keep-monthly=6: 保留最近 6 个月的每月备份。

使用以下命令使 bash 脚本可执行:

chmod +x backup_files.sh

打开 crontab 编辑器:

crontab -e

添加一个 cron 作业,每天在 凌晨 2 点 运行备份:

0 2 * * * /bin/bash /root/backup_files.sh >> /var/log/borgbackup.log 2>&1

从备份还原

要还原备份,请使用 borg extract 命令。

borg extract /path/to/backup/repo::backup-YYYY-MM-DD /home

说明:

  • borg extract: 从备份中提取文件。
  • /path/to/backup/repo::backup-YYYY-MM-DD: 指定要从中提取的存储库和存档。
  • /home: 要还原的目录。它必须是你备份的目录路径。

验证备份

要验证备份的完整性,请使用 borg check 命令。

borg list /path/to/backup/repo

高级命令

以下是一些 BorgBackup 的高级命令。

1. 压缩选项

BorgBackup 支持各种压缩算法。你可以在创建备份时指定压缩算法和级别。

borg create --compression lz4 /path/to/backup/repo::backup-{now:%Y-%m-%d} /home

压缩类型:

  • none: 无压缩。
  • lz4: 快速压缩(默认)。
  • zlib: 标准压缩(可以指定级别 0-9)。
  • lzma: 高压缩(可以指定级别 0-9)。

高压缩示例:

borg create --compression lzma,9 /path/to/backup/repo::backup-{now:%Y-%m-%d} /home

2. 排除模式

你可以使用模式从备份中排除特定文件或目录。

borg create --exclude '/home/*/.cache' --exclude '/home/*/Downloads' /path/to/backup/repo::backup-{now:%Y-%m-%d} /home

说明:

  • -exclude '/home/*/.cache': 排除任何用户的 home 目录中的所有 .cache 目录。
  • -exclude '/home/*/Downloads': 排除任何用户的 home 目录中的所有 Downloads 目录。

3. 预定义的排除模式

Borg 有你可以使用的预定义的排除模式。

borg create --exclude-caches --exclude-if-present '.nobackup' /path/to/backup/repo::backup-{now:%Y-%m-%d} /home

说明:

  • -exclude-caches: 排除带有 CACHEDIR.TAG 文件的目录。
  • -exclude-if-present '.nobackup': 排除包含名为 .nobackup 的文件的目录。

4. 部分备份

你可以使用 --list--filter 选项执行部分备份。

borg create --list --filter=AM /path/to/backup/repo::backup-{now:%Y-%m-%d} /home

说明:

  • -list: 列出所有已处理的文件和目录。
  • -filter=AM: 仅包含自上次备份以来新增或修改的文件。

5. 加密选项

Borg 支持不同的加密模式。

borg init --encryption=keyfile /path/to/backup/repo

加密模式:

  • none: 无加密。
  • repokey: 使用存储在存储库中的密钥加密。
  • keyfile: 使用存储在单独密钥文件中的密钥加密。

6. 挂载存储库

你可以将 Borg 存储库挂载为文件系统以直接访问文件。

borg mount /path/to/backup/repo::backup-YYYY-MM-DD /mnt

说明:

  • borg mount: 挂载指定的存档。
  • /mnt: 存档将可访问的挂载点。

7. 存档删除

要从存储库中删除特定存档,请使用 borg delete 命令。

borg delete /path/to/backup/repo::backup-YYYY-MM-DD

说明:

  • borg delete: 删除指定的存档。

8. 重命名存档

你可以重命名存储库中的存档。

borg rename /path/to/backup/repo::backup-YYYY-MM-DD /path/to/backup/repo::new-backup-name

说明:

  • borg rename: 重命名指定的存档。

9. 压缩存储库

要压缩并释放存储库中的空间,请使用 borg compact 命令。

borg compact /path/to/backup/repo

说明:

  • borg compact: 压缩存储库以回收空间。

10. 创建密钥文件

要创建新的加密密钥文件,请使用 borg key export 命令。

borg key export /path/to/backup/repo /path/to/keyfile

说明:

  • borg key export: 将加密密钥导出到指定的文件。

11. 导入密钥文件

要导入加密的密钥文件,请使用 borg key import 命令。

borg key import /path/to/backup/repo /path/to/keyfile

说明:

  • borg key import: 从指定的文件导入加密密钥。

12. 监控进度

你可以监控备份操作的进度。

borg create --progress /path/to/backup/repo::backup-{now:%Y-%m-%d} /home

说明:

  • -progress: 显示备份操作的进度。

13. 基准测试

要对你的系统进行备份性能基准测试,请使用 borg benchmark 命令。

borg benchmark crud /path/to/backup/repo

说明:

  • borg benchmark crud: 对存储库执行创建、读取、更新和删除操作的基准测试。

这些高级命令和选项允许你根据自己的特定需求定制 BorgBackup,为你的备份策略提供灵活性和效率。如果你对任何命令有疑问或需要进一步的解释,请访问 官方 BorgBackup 文档。我们没有执行所有高级命令。请参考官方文档以获取更多信息。

结尾

在本教程中,你学习了如何安装 BorgBackup、创建和自动化备份、修剪旧备份、还原文件和验证备份。通过这些步骤,你可以确保你的数据被安全备份并且易于恢复。

如需更多详细信息,你可以参考 BorgBackup 文档。

如果你有任何特定的配置或使用场景,请随时提问!

我的博客:https://blog.ivwv.site


http://www.kler.cn/a/487587.html

相关文章:

  • ThreadLocal 的使用场景
  • 【计算机网络】什么是网关(Gateway)?
  • 《解锁计算机视觉智慧:编程实现图片场景文字描述的开源宝藏》
  • 【网络协议】开放式最短路径优先协议OSPF详解(四)
  • 这是什么操作?强制迁移?GitLab 停止中国区用户访问
  • 案例解读 | 香港某多元化综合金融企业基础监控+网管平台建设实践
  • C++ Json库的使用
  • C语言基础:野指针、空指针、空悬指针
  • 机器学习基础-贝叶斯分类器
  • 第 3 章 HTML5 编程基础教案
  • 【Elasticsearch7.11】postman批量导入少量数据
  • Spring/SpringBoot 的 自动装配与自动配置
  • 如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
  • scala_【JVM】概述
  • Zabbix Api使用教程
  • 《零基础Go语言算法实战》【题目 1-16】字符串的遍历与比较
  • 微信小程序期末简答
  • vue+vite打包空白问题
  • Java 开发小技巧:使用 String.intern() 优化内存
  • antd-design-vue1.7.8浏览器中使用
  • P10424 [蓝桥杯 2024 省 B] 好数
  • 基于Springboot的景区民宿预约系统【附源码】
  • 理解Apache Spark中的宽窄依赖
  • LabVIEW瞬变电磁接收系统
  • Redis 优化秒杀(异步秒杀)
  • Debian source_list首次踩坑