在Ubuntu 12.04 VPS上安装和配置Bacula

在本文中,我们将在Ubuntu 12.04虚拟专用服务器实例上安装和配置Bacula。 Bacula是一个强大的备份解决方案,通过依靠客户端 - 服务器模型提供灵活性和可扩展性。

什么是红色表示

用户需要输入或定制的生产线将在红色在本教程! 其余的应该主要是复制和粘贴。

介绍

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”生成随机密码。

文件系统配置

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

将“-p”标志与“mkdir”命令配合使用可创建任何必需的父目录以及目标目录:

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

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

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

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 = /
  }

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

默认值通常在这里很好,但我们需要更改归档目录的路径。 我们不想备份备份文件夹。 更改第二个“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

下部分的“设备”配置“这个存储后台支持的设备”,更改存档设备 ,以反映我们之前设置的备份位置:

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导向器配置:

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”命令。 将提示您输入将要创建的归档文件的名称:

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”可以获得完整的命令列表。

help

完成后,通过键入以退出文件选择:

done

确认您要还原:

yes

再次,当恢复完成时,检查消息的错误。

messages

摘要应该有一行显示“终止:恢复确定”。 完成后,输入“exit”退出bacula控制台:

exit

检查文件系统

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

sudo ls /bacula/backup

您应该看到一个包含您选择的存档名称的文件。

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

sudo ls /bacula/restore

您应该看到root文件结构的一面镜子,不包括Bacula的-dir.conf文件的“排除”一节中列出的文件和目录。

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

作者:Justin Ellingwood