在Ubuntu12.04VPS上安装和配置Bacula

来自菜鸟教程
跳转至:导航、​搜索


状态: 已弃用

本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:

原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


红色是什么意思

用户需要输入或自定义的行在本教程中将显示为红色! 其余的大部分应该是可复制粘贴的。

介绍

Bacula 是一种复杂的备份解决方案,可以通过利用客户端-服务器模型来处理本地和远程备份。 它具有非常灵活的配置选项,可以完全控制备份环境。

在本指南中,我们将备份 Ubuntu 12.04 VPS 的整个根文件系统。

可以在此处找到本指南的更新版本:如何在 Ubuntu 14.04 上安装 Bacula 服务器。

安装 MySQL

Bacula 使用 SQL 数据库来管理其信息。 我们将在本教程中使用 MySQL。

对于 Ubuntu 12.04 VPS,此设置必须提前安装,否则安装 bacula 套件时会出现以下错误:

An error occurred while installing the database:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

为了避免这种情况,我们可以在安装 bacula 组件之前简单地安装 MySQL:

sudo apt-get update
sudo apt-get install mysql-server

系统将提示您提供并确认数据库管理员密码。 输入密码以继续。

安装 Bacula

接下来,我们将安装 bacula 组件:

sudo apt-get install bacula-server bacula-client

系统将提示您为 bacula 设置数据库。 选择“yes”以允许 dbconfig-common 自动配置数据库。

出现提示时,输入您在安装 MySQL 时选择的数据库管理员密码。 然后它将询问 bacula-director-mysql 的应用程序密码。 按“Enter”或“Return”生成随机密码。

文件系统配置

接下来,我们需要创建一些目录作为我们的备份和还原点。

使用带有“mkdir”命令的“-p”标志创建任何必要的父目录以及目标目录:

sudo mkdir -p /bacula/backup /bacula/restore

我们需要更改文件权限,以便只有 bacula 进程才能访问这些位置。

sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula

配置 Bacula

Bacula 有几个组件必须独立配置才能正常运行。 配置文件都可以在/etc/bacula/目录下找到。

配置 bacula-dir.conf

首先编辑 bacula-dir.conf 文件:

sudo nano /etc/bacula/bacula-dir.conf

对于我们将在本指南中执行的备份,必须修改几个不同的部分。

首先,搜索“标准还原模板”部分。 在“作业”设置下,将 Where 参数更改为指向我们创建的还原点:

Job {
  Name = "RestoreFiles"
  Type = Restore
  Client=Blank-fd
  FileSet="Full Set"
  Storage = File
  Pool = Default
  Messages = Standard
  Where = /bacula/restore
}

接下来,搜索“要备份的文件列表”部分。 在“FileSet”设置下,我们将添加一个选项来使用 gzip 压缩我们的档案。

然后,我们将使用“File =”参数准确指定要备份的内容。 您可以在本节中有多个“File =”声明,每个声明都有不同的路径。

对于本指南,我们将备份整个根 (/) 文件系统。 更改参数以反映:

Include {
    Options {
      signature = MD5
      compression = GZIP
    }
# 
#  Put your list of files here, preceded by 'File =', one per line
#    or include an external list with:
#
#    File = file-name
#
#  Note: / backs up everything on the root partition.
#    if you have other partitions such as /usr or /home
#    you will probably want to add them too.
#
#  By default this is defined to point to the Bacula binary
#    directory to give a reasonable FileSet to backup to
#    disk storage during initial testing.
#
    File = /
  }

最后,添加要从备份中排除的文件路径。 这在 FileSet 目录的 Exclude 部分中使用与我们在 Include 部分中使用的相同的“File =”语法完成。

这里的默认值一般都很好,但是我们需要更改存档目录的路径。 我们不想备份备份文件夹。 更改第二个“File =”以反映我们的根 bacula 文件路径:

Exclude {
    File = /var/lib/bacula
    File = /bacula
    File = /proc
    File = /tmp
    File = /.journal
    File = /.fsck
  }

保存并关闭文件。

配置 bacula-sd.conf

我们需要编辑的下一个文件是 bacula-sd.conf 文件。 这将定义 bacula 存储其备份的区域。

使用 sudo 权限打开 bacula-sd.conf 文件:

sudo nano /etc/bacula/bacula-sd.conf

在“此存储守护程序支持的设备”部分下,在“设备”配置中,更改 Archive Device 以反映我们之前设置的备份位置:

Device {
  Name = FileStorage
  Media Type = File
  Archive Device = /bacula/backup
  LabelMedia = yes;                   # lets Bacula label unlabeled media
  Random Access = Yes;
  AutomaticMount = yes;               # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;
}

保存并关闭文件。

检查配置语法

在继续之前,请检查我们使用的配置选项是否被 bacula 识别。 我们可以使用 bacula 的内部测试实用程序来确保我们修改的文件中没有语法错误。

首先,检查 bacula director 配置:

sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

如果命令执行时没有返回任何输出,则配置文件在语法上是正确的。 接下来,检查 bacula 存储配置:

sudo bacula-sd -tc /etc/bacula/bacula-sd.conf

同样,没有输出表明我们的配置文件是有效的。

此时,重新启动我们修改的 bacula 服务以使更改传播:

sudo service bacula-sd restart
sudo service bacula-director restart

我们现在准备测试我们的备份。

测试备份

我们将通过其内部控制台与 bacula 进行交互。 这可以使用“bconsole”命令访问:

sudo bconsole

您将进入带有星号 (*) 提示的 bacula 控制台。 首先发出“标签”命令。 系统将提示您输入将要创建的存档文件的名称:

label
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
Automatically selected Storage: File
Enter new Volume name: MyArchiveName

选择用于备份的存储“池”类型。 由于我们的备份将存储为文件,因此选择#2:

2: File

Bacula 现在知道我们要如何为备份写入数据。 我们现在可以运行我们的备份来测试它是否正常工作:

run
A job name must be specified.
The defined Job resources are:
     1: BackupClient1
     2: BackupCatalog
     3: RestoreFiles
Select Job resource (1-3):

选择 #1 以选择我们配置的备份。

1: BackupClient1

在提示符下,键入“yes”以执行备份:

yes

Bacula 会告诉您您有消息。 这些消息将是备份生成的输出。 通过键入以下内容检查消息是否有错误:

messages

您将看到一些输出行。 再次检查,直到您看到显示备份结果的摘要。 可能需要几分钟。 它应该说“终止:备份正常”。 检查是否没有产生错误。

测试还原

现在已经创建了备份,重要的是检查它是否可以正确恢复。 在 bacula 控制台中,键入:

restore all

将出现一个选择菜单,其中包含许多不同的选项。 我们想恢复最近的备份,所以选择选项 5:

5: Select the most recent backup for a client

这会将您放入具有您备份的整个目录结构的虚拟文件树中。 该界面允许使用简单的命令来标记和取消标记要恢复的文件。

因为我们指定要“全部恢复”,所以每个备份的文件都被预先选择进行恢复。

如果您想微调您的选择,您可以使用“ls”和“cd”命令导航和列出文件,使用“mark”标记要恢复的文件,以及使用“unmark”取消标记文件。 通过在控制台中输入“帮助”可以获得完整的命令列表。

help

完成后,键入以下内容退出文件选择:

done

确认您要恢复:

yes

再次,在恢复完成时检查消息是否有错误。

messages

摘要应该有一行写着“终止:恢复正常”。 完成后,输入“exit”离开 bacula 控制台:

exit

检查文件系统

要检查备份是否按预期完成,请列出备份目录的内容。 您将需要使用 sudo,因为目录结构归“bacula”用户所有:

sudo ls /bacula/backup

您应该会看到一个具有您选择的存档名称的文件。

接下来,我们应该检查我们的还原点。 列出还原点目录的内容:

sudo ls /bacula/restore

您应该看到根文件结构的镜像,不包括 bacula-dir.conf 文件的“排除”部分中列出的文件和目录。

您现在有了一个可以备份本地文件系统的基本 bacula 设置。 Bacula 也是一个强大的远程备份解决方案。 单击此处了解 如何使用 bacula 配置远程备份。

贾斯汀·艾林伍德