状态: 已弃用
本文介绍了不再受支持的 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 配置远程备份。