Bacula установка и настройка ubuntu 20
Для задач резервного копирования в системах Linux существует ряд продуктов (кроме специализированных стандартных утилит), которые обладают высокой эффективностью и универсальностью использования. Среди таковых особенно выделяется Bacula, которая кроме всех прочих достоинств обладает также и ещё некоторыми немаловажными особенностями — это свободное распространение и открытый исходный код. Как правило, подобные системы, в большинстве случаев – проприетарные, поэтому Bacula для системного администратора может явиться самым удачным и рациональным выбором.
Основные преимущества Bacula
Стоит отдельно остановиться на конкретных возможностях Bacula, выделяющих её среди аналогичных продуктов:
- Открытый исходный код и свободное распространение.
- Работа в смешанных системах – UNIX, Linux, Mac OS и Windows.
- Модульная, легко масштабируемая архитектура с чётким разделением функционала, данных и элементов управления/взаимодействия с системой.
- Организация и управление базами данных с помощью MySQL, PostgreSQL и даже
- Работа с несколькими ленточными устройствами хранения, в том числе и с автоматической заменой лент.
- Шифрование сетевого трафика, а также данных резервных копий.
- Централизованные контроль и управление резервным копированием всей системы в распределённых системах любой сложности.
- Возможность создания сигнатур MD5 или SHA1 для каждого обрабатываемого файла.
- Возможность копирования файлов, размером больше 2 Гбайт.
- Поддержка выполнения сценариев в процессе резервного копирования.
Справедливо отметить, что далеко не каждый коммерческий закрытый продукт обладает всеми перечисленными возможностями.
Принцип работы Bacula
Утилита состоит из функциональный компонентов, каждый из которых ответственен за свой круг задач. Каждый компонент функционирует в системе в виде отдельного демона. Они (демоны) обмениваются данными между собой автоматически, а также посредством графического пользовательского интерфейса (GUI) или через командную консоль управления.
Итак, основные демоны Bacula:
- Управления — этот компонент управляет задачами резервного копирования и восстановления, а также координирует проверку файлов, подлежащих резервированию.
- Управления файлами работает в каждой системе, в которой необходимо резервное копирование. Он отправляет демону управления данные об атрибутах резервируемых файлов.
- Хранения — выполняет чтение/запись с устройств хранения. По-умолчанию он работает на тех машинах, к которым непосредственно подключены устройства хранения, однако можно запускать этот демон и на удалённом компьютере — отдельно.
- Каталог — это компонент представляет собой служебную базу данных (БД) для организации и учёта резервного копирования, восстановления и проверки файлов. Благодаря каталогу, утилита располагает всей информацией о всех файлах и устройствах хранения в ретроспективе.
Настройка Bacula
Как уже было отмечено, Bacula из-за своей модульной и многослойной архитектуры может легко разворачиваться и работать в системах самого различного масштаба и сложности. Во всех случаях для настройки утилиты необходимо выполнить следующие действия:
- установить демоны;
- установить и настроить внешние СУБД (системы управления базами данных), а также создать саму БД и таблицы для использования;
- установить и настроить клиентские демоны управления файлами;
- запустить демоны Bacula;
- определить носители хранения и добавить их в пул Bacula;
- проверить работоспособность путём выполнения тестового резервного копирования.
Обычно, на клиентских компьютерах устанавливаются демоны управления файлами, а все остальные демоны работают на серверной машине. В больших и сложных системах с высокой нагрузкой рекомендуется отступать от этой схемы, равномерно организуя нагрузку на сервера, устанавливая отдельные компоненты (демоны) Bacula на отдельных машинах, в том смысле, что на отдельных машинах не должно выполняться сразу несколько демонов.
Установка базы данных
Как уже было сказано, Bacula имеет функциональный компонент — каталог для организации, хранения и использования в своих задачах ретроспективы данных. Этот каталог хранится в БД и обслуживается СУБД, которая, в свою очередь, предварительно должна быть установлена и настроена.
Сама же БД утилиты, т. е. её каталог также должна быть предварительно создана. Также и должны быть созданы и необходимые таблицы внутри этой БД. Обычно всё это делается автоматически при разворачивании утилиты в системе, когда она устанавливается из репозиториев дистрибутива. Для этого используются специализированные скрипты, которые можно найти в каталоге src/cats дистрибутива с исходными кодами Bacula, если сборка и установка производится вручную. Скрипт create_mysql_database создаст базу данных, а другой скрипт make_mysql_tables – таблицы для этой БД. Ещё один скрипт grant_mysql_privileges предоставляет пользователю MySQL разрешения для пользования этой БД.
Конфигурирование демонов
Для каждого компонента Bacula и демона предусмотрен отдельный конфигурационный файл. После установки и настройки СУБД, а также создания БД таблиц каталога Bacula необходимо выполнить конфигурацию и её компонентов. В следующей таблице представлены конфигурационные файлы основных компонентов утилиты, которые находятся в каталоге /etc/bacula:
Компонент
Конфигурационный файл
Компьютер
Сервер, запускающий демон управления
Любой сервер, содержащий демон хранения
Любой клиент, для которого нужно создавать резервные архивы
Любой компьютер, который можно использовать для управления
Стоит отметить, что хранение конфигурации в отдельных для каждого компонента файлах — очень удобно и способствует лучшей масштабируемости системы, ведь таким образом легко «расфасовать» разные демоны с их конфигурационными файлами по разным машинам. Например, если нужно хранить архивы на «стороннем компьютере», то для этого достаточно установить и настроить демон хранения на этом «стороннем компьютере».
Для того, чтобы более подробно рассмотреть механизм конфигурирования демонов, следует разобраться с несколькими базовыми понятиями, характерными для Bacula, а именно:
В более сложном случае, характерном для файла конфигурации bacula-dir.conf ресурс Messages имеет следующий вид:
Можно определить несколько ресурсов Messages и привязать их к отдельным заданиям, которые, в свою очередь, описываются в другом ресурсе Job. Самую подробную информацию о правилах описания ресурсов для разных случаях можно найти в официальной технической документации к Bacula.
Самой сложной конфигурацией является конфигурация демона управления — bacula-dir.conf. Она должна включать в себя описания ещё семи (кроме рассмотренных Director и Messages) ресурсов: Job, Client, Catalog, Storage, Schedule, FileSet, Pool. В предоставляемых в дистрибутивах или пакетах утилиты можно найти примеры конфигурационных файлов, в которых описываются ресурсы с подробными комментариями и на их основе создать собственную конфигурацию.
Для конфигурирования демона управления файлами на конкретном компьютере должен быть (после предварительной установки этого демона на этот компьютер) отредактирован файл bacula-fd.conf. В нём нужно, в ресурсе Director указать, какое устройство управления использовать для планирования задач для этого клиента, а также пароль — такой же, который указан в ресурсе Client в файле конфигурации демона управления. В ресурсе FileDemon определяются имена клиентов, а также порт, через который демон управления файлами слушает для получения команд от демона управления. Ну и конечно, должен быть определён ресурс Messages.
Запуск демонов Bacula
После того как все демоны и клиенты установлены и настроены. Можно запускать Bacula с помощью скрипта ./bacula start, который запустит все демоны системы. На клиентских машинах (на которых находятся демоны управления файлами). Для запуска клиентских демонов используется эта же команда. Сам же скрипт находится в каталоге с установленным сервером/демоном.
Для проверки состояния работы демонов, а также для управления Bacula можно использовать программу bconsole. Которая также находится в каталоге установки Bacula. Пользоваться bconsole можно с любого компьютера в сети, если конечно она правильно установлена и настроена:
Для включения автозапуска Bacula при начальной загрузке системы можно (и нужно) также добавить команду ./bacula start в автозагрузку. В зависимости от используемой Linux-системы.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Bacula - это система резервного копирования корпоративного уровня. Она имеет клиент-серверную архитектуру и состоит из таких компонентов:
- Bacula Director (сервис bacula-dir) - основной сервис, который управляет всеми другими процессами по резервному копированию и восстановлению;
- Bacula Storage (сервис bacula-sd) - хранилище, предназначенное для сохранения резервных копий на диске;
- Bacula File Daemon (сервис bacula-fd) - клиентская часть сервиса, которая нужна для доступа к файлам на сервере, с которого будет выполнятся резервное копирование.
Все компоненты могут быть установлены как на одном сервере, так и на разных, но каждый из них должен иметь возможность обратится к другому по сети. Для управления всем этим используется утилита командной строки bconsole. Для неё существует как консольный так и веб-интерфейс, но основной способ управления - командная строка.
УСТАНОВКА И НАСТРОЙКА BACULA
ШАГ 1. УСТАНОВКА BACULA НА СЕРВЕР
Для версии сервера можно устанавливать полностью группу пакетов bacula. В Ubuntu по умолчанию будут установлены также такие пакеты, как PostgreSQL и Postfix. Команда установки будет выглядеть вот так:
sudo apt install bacula
Для работы Bacula нужна какая-нибудь база данных поэтому без Postgresql обойтись не получится, но Postfix можно не ставить, для этого просто допишите в команде установки postfix-. Например:
sudo apt install bacula postfix-
В процессе установки программа предложит настроить базу данных для Bacula. Лучше сделать это сейчас чтобы потом не делать вручную. Поэтому выберите Yes в следующем окне:
Поскольку база данных находится на том же сервере, что и Bacula достаточно выбрать localhost:
Далее введите пароль от будущей базы данных:
Установщик автоматически создаст базу данных, пользователя, а также пропишет их в конфигурационный файл Bacula. После завершения установки можно переходить к настройке программы.
ШАГ 2. НАСТРОЙКА BACULA STORAGE
Давайте первым делом настроем хранилище для Bacula. Конфигурация хранилища находится в файле /etc/bacula/bacula-sd.conf. В конфигурационном файле есть несколько секций:
- Storage - секция, с основными настройками хранилища, здесь настраивается имя хранилища, а также IP адрес на котором оно будет доступно, для локальной сети пока достаточно 127.0.0.1.
- Director - настраивается авторизация для управляющего сервиса, тут надо прописать имя сервиса, который может подключится и пароль, который он должен использовать.
- Device - здесь настраивается способ хранения файлов на физическом диске и путь к папке, где они будут хранится.
- Messages - отправка сообщений, можно оставить как есть.
Каждая секция имеет такой синтаксис:
имя_секции
параметр = значение
>
Пробелы игнорируются интерпретатором, а регистр имен параметров не имеет значения. Секций с одним именем может быть несколько. Давайте теперь рассмотрим содержимое каждой секции, которая нам нужна подробнее. Старый конфигурационный файл можете переместить в _back, а для этой конфигурации создать новый:
sudo mv /etc/bacula/bacula-sd.conf
sudo vi /etc/bacula/bacula-sd.conf
Удалять оригинальный файл не стоит, потому что может в будущем изменятся какие-либо пути и вам надо будет сверится с этим файлом. Сначала секция Storage:
Дальше секция Director:
Секция Device:
Некоторые опции довольно странные. Это потому что изначально программа использовала не жесткие диски, а накопители на магнитной ленте для хранения данных. Последняя секция Messages. Всё остается как было в оригинальном файле:
После завершения редактирования конфигурационного файла необходимо проверить его на ошибки. Для этого используйте такую команду:
sudo /usr/sbin/bacula-dir -t -c /etc/bacula/bacula-sd.conf
Если программа не вывела в консоль вообще ничего можно двигаться дальше. Перезапустите сервис чтобы применить изменения:
sudo systemctl restart bacula
ШАГ 3. НАСТРОЙКА ЛОКАЛЬНОГО КЛИЕНТА BACULA FILE DAEMON
Эта служба используется для доступа к файлам на сервере. Она должна быть запущена на машинах, с которых вы хотите делать резервные копии. Конфигурация стандартная, для локальной машины вы можете оставить то, что там есть по умолчанию. Рассмотрим основные секции:
sudo vi /etc/bacula/bacula-fd.conf
Дальше идет секция с основными настройками File Daemon:
Ну и стандартная секция для отправки сообщений в Director:
Если что-то меняли, не забудьте проверить конфигурацию на ошибки и перезапустить сервис bacula-fd.
ШАГ 3. НАСТРОЙКА BACULA DIRECTOR
Конфигурационный файл Bacula Director находится по такому пути /etc/bacula/bacula-director.conf. Здесь тоже всё разбито на секции. Вы можете поступить аналогично настройке Storage. Переименовать его и добавлять секции в пустой файл. Давайте рассмотрим основные секции. Главная секция, описывающая сам сервис управления называется Director:
Следующая секция не обязательная, но она есть в конфигурационном файле Bacula - JobDefs. Эта секция содержит значения по умолчанию, которые потом можно будет использовать при создании задач (Job):
Write Bootstrap = "/var/lib/bacula/%c.bsr" - куда записывать файл с метаданными .Файл с метаданными в формате bsr содержит информацию в ASCII о том, где и какие файлы находятся. Она необходима для того чтобы потом можно было восстановить из резервной копии отдельные файлы без восстановления всего что было сохранено. Дальше идёт секция с именем Catalog, в которой описывается способ подключения к базе данных Postgresql, которая была создана и настроена во время установки. Если всё сделано правильно, то в оригинальном конфигурационном файле уже есть верные данные:
dbname = "bacula" ; DB Address = "localhost" ; dbuser = "bacula" ; dbpassword = "пароль"Ещё тут есть секция Messages с именем Standart и секция Console. В них ничего менять не надо, просто скопируйте их из оригинального конфигурационного файла.
ШАГ 4. РЕЗЕРВНОЕ КОПИРОВАНИЕ ЛОКАЛЬНОЙ ПАПКИ
Теперь у вас есть полностью настроенное хранилище, eizenhorn-sd и файловый демон eizenhorn-fd. Можно приступать к настройке резервного копирования локальной папки. Для этого в конфигурационный файл директора надо добавить несколько секций. Давайте сначала добавим пул, где будут хранится данные. Фактически, эта секция описывает набор томов (Volume), а фактически файлов в файловой системе с одинаковым префиксом, в которые будут записываться резервные копии. Это полезно, например, если вы хотите хранить резервные копии каждой машины в отдельном файле:
sudo vi /etc/bacula/bacula-dir.conf
Пул готов, дальше надо определиться какой клиент мы будем использовать для доступа к файлам. Поскольку это локальная машина, надо использовать ранее настроенный eizenhorn-fd:
Тут надо разобраться с группой параметров удаления данных. Раньше, в настройке пула использовался параметр Volume Retention, в настройке клиента ещё два. Вот их значения:
- Job Retention - период хранения информации о выполненных задачах. Она занимает не много места, поэтому хранить её можно долго. После удаления вы не сможете посмотреть какие задачи когда были выполнены.
- File Retention - период хранения информации о местонахождении файлов. Занимает уже больше места, но позволяет восстановить отдельные файлы из резервной копии. Без него вы сможете восстановить файлы только распаковав резервную копию полностью.
- Volume Retention - отвечает за хранение самих данных резервных копий. После удаления вы уже не сможете получить к ним доступ.
После того как клиент есть осталось понять какие файлы надо поместить в резервную копию, для этого есть секция FileSet:
В данном случае интересен только параметр File, который указывает путь к папке, которую надо поместить в резервную копию. В данном случае это папка с конфигурацией системы - /etc.
Теперь надо указать когда запускать резервную копию с помощью секции Scedule:
Имя Name может быть произвольным, вы его будете использовать позже, при составлении задачи, а параметр Run должен указывать когда надо запускать резервную копию, а также может переопределять параметры заданные в задаче (Job). Кроме того можно задать несколько директив Run для того чтобы настроить разные типы резервного копирования.
Переопределяя уровень резервирования (Level) можно указать такие параметры:
- Full - все файлы и каталоги перечисленные в FileSet не зависимо от того изменились они или нет.
- Incremental - только те файлы и каталоги из FileSet, которые изменились с момента последней резервной копии.
Подробно о формате времени можно узнать в официальной документации. В упрощенном варианте можно использовать такой синтаксис:
день at ЧЧ:ММ
месяц номер_недели день at ЧЧ:ММ
В качестве дня можно использовать daily (каждый день) или sun, mon, the, wed, thu, fri, sat. В качестве номера недели: 1st, 2st, 3st, 4st, 5st. Например, можно записать вот так:
Дальше осталось объединить всё созданное ранее в задаче (Job):
После завершения настройки проверьте конфигурационный файл на ошибки:
sudo /usr/sbin/bacula-dir -t -c /etc/bacula/bacula-dir.conf
И если всё хорошо, перезапустите сервис:
sudo systemctl restart bacula-dir
ШАГ 5. НАСТРОЙКА КОНСОЛИ
Конфигурационный файл консоли находится здесь /etc/bacula/bconsole.conf. В нём есть только одна секция и здесь нужно указать на каком IP адресе ожидает соединений Bacula Director, а также пароль, к нему настроенный в секции Director файла /etc/bacula/bacula-dir.conf. Например:
Дальше можно переходить к работе с консолью.
ШАГ 5. РЕЗЕРВНОЕ КОПИРОВАНИЕ В КОНСОЛИ
Работать с консолью Bacula довольно непривычно. Но у неё есть свои плюсы. Для запуска консоли выполните такую команду:
Вы увидите такое окно, с приглашением ввода в виде звездочки:
Для запуска задачи по резервному копированию выполните команду run. Поскольку сейчас задача одна, вам сразу же будет предложено её выполнить, в дальнейшем надо будет выбрать номер задачи или явно указать её имя команде в параметре команды run. После выполнения задачи она будет просто поставлена в очередь:
Больше ничего выведено не будет. Но результат выполнения задачи никуда не теряется. Он приходит вам в виде сообщений. Вы можете закрыть консоль и снова войти или просто нажать Enter и увидите сообщение о том, что You have messages:
Для того чтобы прочитать сообщения используйте команду messages:
В данном случае будет выведена краткая статистика по задаче, а также результат её выполнения, ОК:
Посмотреть список выполненных задач можно командой list jobs:
Обратите внимание, что у каждой задачи есть свой ID и вы можете с помощью него посмотреть список файлов каждой задачи:
list files jobid=14
ШАГ 6. ВОССТАНОВЛЕНИЕ ДАННЫХ
Для восстановления данных можно создать специальную задачу (Job), а затем воспользоваться командой restore, которая позволяет восстановить нужную резервную копию. Сначала надо добавить нужную задачу в конфигурационный файл /etc/bacula/bacula-dir.conf. Например, для восстановления ранее сделанной резервной копии папки /etc:
Сохраните изменения и перезапустите bacula-dir, затем создайте папку, куда будет выполнятся восстановление:
sudo mkdir /opt/restore
Запустите консоль и выполните команду restore для того чтобы начать восстановление:
Дальше вам надо знать задачу по резервному копированию, которую вы хотите восстановить. Узнать её можно несколькими способами:
- 1 - выведет последние 20 выполненных задач;
- 2 - выведет задачи, у которых есть указанные файлы;
- 3 - позволяет ввести вручную ID нужных задач;
- 4 - позволяет выполнить SQL запрос.
Все варианты я рассматривать не буду. Для примера можно воспользоваться первым, и выбрать одну из ранее выполненных задач:
Давайте попробуем восстановить файлы из резервной копии, созданной заданием с ID 15. Для этого нажмите 4 и введите 15:
Здесь нужно перемещаться по виртуальной файловой системе с помощью команд cd и ls, а также отмечать или снимать отметку для файлов которые надо извлечь командами mark и unmark. Когда всё будет готово выполните команду done:
После этого утилита предложит выбрать клиент с помощью которого будет выполнятся восстановление:
А затем утилита покажет общую информацию о будущем восстановлении и вам надо набрать yes для того чтобы продолжать.
После завершения восстановления файлы появятся в папке /opt/restore. Если вы хотите восстановить все файлы из последней резервной копии, то вам не надо делать всё это достаточно выполнить команду run и передать ей имя задачи по восстановлению:
Резервное копирование - это одна из самых важных вещей если вы управляете серверами или у вас есть хотя бы один свой сервер. Непредвиденная ситуация может произойти в любой момент. Для того чтобы потерять данные не надо никакого особого случая. У вас может выйти из строя жесткий диск, у хостинг провайдера может что-то сломаться, или вы можете сами случайно снести базу данных забыв, что она где-то используется и в ней ещё есть важные данные.
В этой статье мы рассмотрим как выполняется установка и настройка Bacula. Это одна из самых популярных систем резервного копирования для Linux с открытым исходным кодом.
Что такое Bacula
Bacula - это система резервного копирования корпоративного уровня. Она имеет клиент-серверную архитектуру и состоит из таких компонентов:
- Bacula Director (сервис bacula-dir) - основной сервис, который управляет всеми другими процессами по резервному копированию и восстановлению;
- Bacula Storage (сервис bacula-sd) - хранилище, предназначенное для сохранения резервных копий на диске;
- Bacula File Daemon (сервис bacula-fd) - клиентская часть сервиса, которая нужна для доступа к файлам на сервере, с которого будет выполнятся резервное копирование.
Все компоненты могут быть установлены как на одном сервере, так и на разных, но каждый из них должен иметь возможность обратится к другому по сети. Для управления всем этим используется утилита командной строки bconsole. Для неё существует как консольный так и веб-интерфейс, но основной способ управления - командная строка.
Установка и настройка Bacula
Шаг 1. Установка Bacula на сервер
Для версии сервера можно устанавливать полностью группу пакетов bacula. В Ubuntu по умолчанию будут установлены также такие пакеты, как PostgreSQL и Postfix. Команда установки будет выглядеть вот так:
sudo apt install bacula
Для работы Bacula нужна какая-нибудь база данных поэтому без Postgresql обойтись не получится, но Postfix можно не ставить, для этого просто допишите в команде установки postfix-. Например:
sudo apt install bacula postfix-
В процессе установки программа предложит настроить базу данных для Bacula. Лучше сделать это сейчас чтобы потом не делать вручную. Поэтому выберите Yes в следующем окне:
Поскольку база данных находится на том же сервере, что и Bacula достаточно выбрать localhost:
Далее введите пароль от будущей базы данных:
Установщик автоматически создаст базу данных, пользователя, а также пропишет их в конфигурационный файл Bacula. После завершения установки можно переходить к настройке программы.
Шаг 2. Настройка Bacula Storage
Давайте первым делом настроем хранилище для Bacula. Конфигурация хранилища находится в файле /etc/bacula/bacula-sd.conf. В конфигурационном файле есть несколько секций:
Каждая секция имеет такой синтаксис:
имя_секции
параметр = значение
>
Пробелы игнорируются интерпретатором, а регистр имен параметров не имеет значения. Секций с одним именем может быть несколько. Давайте теперь рассмотрим содержимое каждой секции, которая нам нужна подробнее. Старый конфигурационный файл можете переместить в _back, а для этой конфигурации создать новый:
sudo mv /etc/bacula/bacula-sd.conf
sudo vi /etc/bacula/bacula-sd.conf
Удалять оригинальный файл не стоит, потому что может в будущем изменятся какие-либо пути и вам надо будет сверится с этим файлом. Сначала секция Storage:
Дальше секция Director:
Секция Device:
Некоторые опции довольно странные. Это потому что изначально программа использовала не жесткие диски, а накопители на магнитной ленте для хранения данных. Последняя секция Messages. Всё остается как было в оригинальном файле:
После завершения редактирования конфигурационного файла необходимо проверить его на ошибки. Для этого используйте такую команду:
sudo /usr/sbin/bacula-sd -t -c /etc/bacula/bacula-sd.conf
Если программа не вывела в консоль вообще ничего можно двигаться дальше. Перезапустите сервис чтобы применить изменения:
sudo systemctl restart bacula
Шаг 3. Настройка локального клиента Bacula File Daemon
Эта служба используется для доступа к файлам на сервере. Она должна быть запущена на машинах, с которых вы хотите делать резервные копии. Конфигурация стандартная, для локальной машины вы можете оставить то, что там есть по умолчанию. Рассмотрим основные секции:
sudo vi /etc/bacula/bacula-fd.conf
Дальше идет секция с основными настройками File Daemon:
Если что-то меняли, не забудьте проверить конфигурацию на ошибки и перезапустить сервис bacula-fd.
Шаг 3. Настройка Bacula Director
Конфигурационный файл Bacula Director находится по такому пути /etc/bacula/bacula-director.conf. Здесь тоже всё разбито на секции. Вы можете поступить аналогично настройке Storage. Переименовать его и добавлять секции в пустой файл. Давайте рассмотрим основные секции. Главная секция, описывающая сам сервис управления называется Director:
Следующая секция не обязательная, но она есть в конфигурационном файле Bacula - JobDefs. Эта секция содержит значения по умолчанию, которые потом можно будет использовать при создании задач (Job):
Файл с метаданными в формате bsr содержит информацию в ASCII о том, где и какие файлы находятся. Она необходима для того чтобы потом можно было восстановить из резервной копии отдельные файлы без восстановления всего что было сохранено. Дальше идёт секция с именем Catalog, в которой описывается способ подключения к базе данных Postgresql, которая была создана и настроена во время установки. Если всё сделано правильно, то в оригинальном конфигурационном файле уже есть верные данные:
Ещё тут есть секция Messages с именем Standart и секция Console. В них ничего менять не надо, просто скопируйте их из оригинального конфигурационного файла.
Шаг 4. Резервное копирование локальной папки
Теперь у вас есть полностью настроенное хранилище, eizenhorn-sd и файловый демон eizenhorn-fd. Можно приступать к настройке резервного копирования локальной папки. Для этого в конфигурационный файл директора надо добавить несколько секций. Давайте сначала добавим пул, где будут хранится данные. Фактически, эта секция описывает набор томов (Volume), а фактически файлов в файловой системе с одинаковым префиксом, в которые будут записываться резервные копии. Это полезно, например, если вы хотите хранить резервные копии каждой машины в отдельном файле:
sudo vi /etc/bacula/bacula-dir.conf
Пул готов, дальше надо определиться какой клиент мы будем использовать для доступа к файлам. Поскольку это локальная машина, надо использовать ранее настроенный eizenhorn-fd:
Тут надо разобраться с группой параметров удаления данных. Раньше, в настройке пула использовался параметр Volume Retention, в настройке клиента ещё два. Вот их значения:
- Job Retention - период хранения информации о выполненных задачах. Она занимает не много места, поэтому хранить её можно долго. После удаления вы не сможете посмотреть какие задачи когда были выполнены.
- File Retention - период хранения информации о местонахождении файлов. Занимает уже больше места, но позволяет восстановить отдельные файлы из резервной копии. Без него вы сможете восстановить файлы только распаковав резервную копию полностью.
- Volume Retention - отвечает за хранение самих данных резервных копий. После удаления вы уже не сможете получить к ним доступ.
После того как клиент есть осталось понять какие файлы надо поместить в резервную копию, для этого есть секция FileSet:
В данном случае интересен только параметр File, который указывает путь к папке, которую надо поместить в резервную копию. В данном случае это папка с конфигурацией системы - /etc.
Теперь надо указать когда запускать резервную копию с помощью секции Scedule:
Имя Name может быть произвольным, вы его будете использовать позже, при составлении задачи, а параметр Run должен указывать когда надо запускать резервную копию, а также может переопределять параметры заданные в задаче (Job). Кроме того можно задать несколько директив Run для того чтобы настроить разные типы резервного копирования.
Переопределяя уровень резервирования (Level) можно указать такие параметры:
- Full - все файлы и каталоги перечисленные в FileSet не зависимо от того изменились они или нет.
- Incremental - только те файлы и каталоги из FileSet, которые изменились с момента последней резервной копии.
Подробно о формате времени можно узнать в официальной документации. В упрощенном варианте можно использовать такой синтаксис:
день at ЧЧ : ММ
месяц номер_недели день at ЧЧ : ММ
В качестве дня можно использовать daily (каждый день) или sun, mon, the, wed, thu, fri, sat. В качестве номера недели: 1st, 2st, 3st, 4st, 5st. Например, можно записать вот так:
Дальше осталось объединить всё созданное ранее в задаче (Job):
После завершения настройки проверьте конфигурационный файл на ошибки:
sudo /usr/sbin/bacula-dir -t -c /etc/bacula/bacula-dir.conf
И если всё хорошо, перезапустите сервис:
sudo systemctl restart bacula-dir
Шаг 5. Настройка консоли
Конфигурационный файл консоли находится здесь /etc/bacula/bconsole.conf. В нём есть только одна секция и здесь нужно указать на каком IP адресе ожидает соединений Bacula Director, а также пароль, к нему настроенный в секции Director файла /etc/bacula/bacula-dir.conf. Например:
Дальше можно переходить к работе с консолью.
Шаг 5. Резервное копирование в консоли
Работать с консолью Bacula довольно непривычно. Но у неё есть свои плюсы. Для запуска консоли выполните такую команду:
Вы увидите такое окно, с приглашением ввода в виде звездочки:
Для запуска задачи по резервному копированию выполните команду run. Поскольку сейчас задача одна, вам сразу же будет предложено её выполнить, в дальнейшем надо будет выбрать номер задачи или явно указать её имя команде в параметре команды run. После выполнения задачи она будет просто поставлена в очередь:
В данном случае будет выведена краткая статистика по задаче, а также результат её выполнения, ОК:
Посмотреть список выполненных задач можно командой list jobs:
Обратите внимание, что у каждой задачи есть свой ID и вы можете с помощью него посмотреть список файлов каждой задачи:
list files jobid=14
Шаг 6. Восстановление данных
Для восстановления данных можно создать специальную задачу (Job), а затем воспользоваться командой restore, которая позволяет восстановить нужную резервную копию. Сначала надо добавить нужную задачу в конфигурационный файл /etc/bacula/bacula-dir.conf. Например, для восстановления ранее сделанной резервной копии папки /etc:
Сохраните изменения и перезапустите bacula-dir, затем создайте папку, куда будет выполнятся восстановление:
sudo mkdir /opt/restore
Запустите консоль и выполните команду restore для того чтобы начать восстановление:
Дальше вам надо знать задачу по резервному копированию, которую вы хотите восстановить. Узнать её можно несколькими способами:
- 1 - выведет последние 20 выполненных задач;
- 2 - выведет задачи, у которых есть указанные файлы;
- 3 - позволяет ввести вручную ID нужных задач;
- 4 - позволяет выполнить SQL запрос.
Все варианты я рассматривать не буду. Для примера можно воспользоваться первым, и выбрать одну из ранее выполненных задач:
Давайте попробуем восстановить файлы из резервной копии, созданной заданием с ID 15. Для этого нажмите 4 и введите 15:
Здесь нужно перемещаться по виртуальной файловой системе с помощью команд cd и ls, а также отмечать или снимать отметку для файлов которые надо извлечь командами mark и unmark. Когда всё будет готово выполните команду done:
После этого утилита предложит выбрать клиент с помощью которого будет выполнятся восстановление:
А затем утилита покажет общую информацию о будущем восстановлении и вам надо набрать yes для того чтобы продолжать.
После завершения восстановления файлы появятся в папке /opt/restore. Если вы хотите восстановить все файлы из последней резервной копии, то вам не надо делать всё это достаточно выполнить команду run и передать ей имя задачи по восстановлению:
Выводы
Из этой статьи вы узнали как выполняется установка и настройка Bacula в Linux для резервного копирования локальных файлов. Удалённое резервное копирование не намного сложнее. Вам просто надо установить на удалённую машину клиент и прописать его IP адрес в директоре. Это довольно громоздкая платформа, но нельзя не отдать ей должное в том, что конфигурационные файлы вполне понятны и их не очень сложно редактировать. А если вы не хотите иметь дело с консолью и конфигурационными файлами, то у программы есть несколько сторонних веб-интерфейсов.
Нет похожих записей
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Bacula - это программа резервного копирования, позволяющая вам сохранять, восстанавливать и проверять данные через вашу сеть. Для Bacula существуют клиенты под Linux, Windows и Mac OS X, превращая ее в кросс-платформенное сетевое решение.
Обзор
Bacula состоит из нескольких компонентов и сервисов для управления тем, какие файлы сохранять и где хранить резервные копии:
Эти сервисы и приложения могут быть запущены на разных серверах и клиентах или их можно установить на одной машине, если требуется резервное копирование одного диска или тома.
Установка
При использовании MySQL или PostgreSQL в качестве базы данных, вам уже должны быть доступны эти сервисы. Bacula не будет устанавливать их для вас.Существует несколько пакетов, содержащих различные компоненты Bacula. Для установки Bacula введите в терминале:
При установке по умолчанию пакет bacula будет использовать базу данных MySQL для Catalog. Если вы хотите использовать SQLite или PostgreSQL, установите соответственно пакет bacula-director-sqlite3 или bacula-director-pgsql.
В процессе установки у вас спросят данные об администраторе базы данных и владельце базы данных bacula. Администратор базы данных требуется для получения необходимых прав на создание базы данных. Дополнительную информацию смотрите в разделе MySQL.
Настройка
Файлы настройки Bacula форматированы на основе ресурсов, включающих директивы, обрамленные фигурными скобками "<>". Каждый компонент Bacula имеет индивидуальный файл в каталоге /etc/bacula.
Различные компоненты Bacula должны авторизовывать себя друг для друга. Это решается использованием директивы password. Например, пароль в ресурсе Storage файла /etc/bacula/bacula-dir.conf должен соответствовать паролю ресурса Director файла /etc/bacula/bacula-sd.conf.
По умолчанию настраивается задание резервного копирования Client1 для архивирования Bacula Catalog. Если вы планируете использовать сервер для резервного копирования более чем на одном клиенте, вам потребуется изменить имя этого задания на что-то более осмысленное. Для переименования отредактируйте файл /etc/bacula/bacula-dir.conf:
В примере имя задания изменено на BackupServer в соответствии с сетевым именем машины. Можете заменить "BackupServer" на соответствующее сетевое имя вашего сервера или другое описательное название.Требуется использовать Console для запросов к Director по поводу заданий, но чтобы обычный пользователь мог использовать Console, он должен быть включен в группу bacula. Чтобы добавить пользователя в группу bacula введите следующую команду в терминале:
Замените $username на актуальное имя пользователя. Также, если вы добавили в группу текущего пользователя, вам придется выйти из системы и зайти снова, чтобы применились новые права доступа.Резервное копирование локальной системы
Эта секция описывает как сделать резервную копию определенных каталогов на единственном сервере на локальное ленточное устройство.
1. Для начала требуется настроить устройство хранения. Отредактируйте /etc/bacula/bacula-sd.conf, добавив:
Этот пример для ленточного устройства DDS-4. Измените "Media Type" и "Archive Device" в соответствии с вашим оборудованием.
Вы также можете раскомментировать один из примеров в этом файле.
2. После редактирования файла /etc/bacula/bacula-sd.conf сервис Storage требуется перезагрузить:
3. Теперь добавьте ресурс Storage в файл /etc/bacula/bacula-dir.conf для использования нового устройства:
Директива Address должна быть полностью квалифицированным доменным именем (FQDN) сервера. Замените backupserver на актуальное сетевое имя.
Также убедитесь, что директива Password соответствует строке пароля в /etc/bacula/bacula-sd.conf.
4. Создайте новый FileSet, который будет определять какие каталоги копировать, добавив:
Этот FileSet задает резервное копирование для каталогов /etc и /home. Директивы ресурса Options настраивают FileSet на создание контрольных сумм MD5 для каждого сохраненного файла и сжатие файлов с использованием GZIP.
5. Далее создайте новое расписание Schedule для задачи резервного копирования:
Задание будет запускаться каждый день в 00:01. Существует множество других доступных опций расписаний.
6. Наконец, создадим задание:
Задание будет выполнять полную резервную копию каждый день на ленту.
7. Каждая используемая лента должна иметь метку. Если текущая лента метки не имеет, Bacula отправит email с оповещением. Чтобы установить метку на ленту с помощью Console, введите в терминале:
8. В командной строке Bacula Console введите:
9. Вам предложат выбрать один из ресурсов Storage:
10. Введите новое имя тома:
Замените Sunday на соответствующую метку.
11. Теперь выберите накопитель:
Поздравляем! Вы настроили Bacula на резервное копирование локального сервера на подключенное ленточное устройство.
Ссылки
Читайте также: