Архивы: conf

бакула и удобства

Кто видел конфиг бакула-директора, тот фильмов ужасов не боится.
А если у вас дофига бекапируемых серваков, баз и прочего, то это вообще ад.

Чтоб упростить себе жизнь было сделано следующее:
отредактирован bacula-dir.conf. В нем я оставил все что касается самого директора,

Director {   …  }

хранилищ

Storage { …  }

Storage { …  }

бакуловской базы, мессаг и настроек консоли (паролей )

Catalog { … }
Messages { … }
Console { … }

Так же в этом конфиге я оставил настроки для job’ы по рестору (она у меня часто правиться не будет, пусть тут полежит)

Самое интересное в конце файла:

###############clients confs
@|»sh -c ‘for f in /etc/bacula/clients/*.conf ; do echo @${f} ; done'»

###############data confs
@|»sh -c ‘for f in /etc/bacula/backups/*.conf ; do echo @${f} ; done'»

Этими замысловатыми строками мы присоединяем к конфигу содержимое всех файлов *.conf из подпапок clients и backups, причем налету!

Соответственно в папке clients лежит куча мелких конфигов с настройками клиентов (bacula-fd), типа mynewserver.conf, каждый с одной лишь секцией

Client { … }

А в папке backups тоже куча, но уже файлов настроек конкретных пулов, т.е. отдельных единиц бекапируемов информации. У меня 1 пул = 1 логичской единице бекапируемой информации. Например в пул 1c_main входят файлсеты
1c_main_sql и 1c_main_files.

Примеры файликов:
less /etc/bacula/clients/mycoolserver.conf

##################################
# mycoolserver.vashdomen.ru
##################################
Client {
Name = mycoolserver-fd
Address = mycoolserver.vashdomen.ru
FDPort = 9102
Catalog = MyCatalog
Password = «mycoolpassword»          # password for FileDaemon
File Retention = 35 days            # Сколько сохранять метаданные о сохраненных файлах
Job Retention = 35 days            # Сколько сохранять метаданные касательно заданий
AutoPrune = yes                     # Prune expired Jobs/Files
}

less /etc/bacula/backups/1c_main.conf

################################################
# 1c_main   — очень важная база нах. Хранить тыщу лет (бухи не простят!)
################################################
# описание пула
Pool {
Name = 1c_main   #заменяем на свое название по сути бекапа (ЧТО БЕКАПИМ)
Pool Type = Backup
Maximum Volume Bytes = 4650000000   # размер dvd диска
Recycle = yes                       # Bacula can automatically recycle Volumes
AutoPrune = yes                     # Prune expired volumes
Volume Retention = 1000 years         # Как долго бакула должна бояться удалить том   :))))
Maximum Volume Jobs = 1             # Сколько заданий хранить в каждом из томов
Label Format = 1c_main_       # обзываем в соответсвие с Name
}

#1c_main_sql       mssql база
Job {
Name = «Backup_1c_main_sql»          #имя правим в соответствие с label format
Type = Backup
Level = Full
FileSet = «1c_main_sql»                      #здесь файл-сет который описывается ниже, имена должны совпадать
Schedule = «1c_main_sql_shed»        #расписание для этой таски
Client = mycoolserver-fd                               #ИМЯБЕКАПИРУЕМОГОСЕРВЕРА-fd

RunBeforeJob =»/etc/bacula/scripts/mssql mycoolserver mssqluser  password d backup 1cmainbase»  #бекапить mssql
RunBeforeJob = «/etc/bacula/scripts/mssql mycoolserver mssqluser  password d backup 1cmainbase»  #что после бекапа удалить
Storage = sda1    #где хранить бекап на сервере бекапов
Pool = 1c_main    #пул. он был задан выше
Messages = Standard
Write Bootstrap = «/home/bacula/bacula.bootstrap/%n.bsr»
}

#1c_main files            файлы с винды
Job {
Name = «Backup_1c_main_files»
Type = Backup
Level = Incremental
FileSet = «1c_main_files»
Schedule = «1c_main_files_shed»
Client = mycoolserver-fd
Storage = sda1
Pool = 1c_main    #пул. он был задан выше
Messages = Standart
Write Bootstrap = «/home/bacula/bacula.bootstrap/%n.bsr»
}

########################################
#ТУТ собственно какие файлы бакула будет утягивать к себе
FileSet {
Name = «1c_main_sql»     #имя файлсета см выше
Include {
Options {
signature = MD5
compression = GZIP8     #уровень сжатия чем выше число (до 9) тем круче жмет
}
File = d:/backup/1cmainbase #эта папка результат работы команды
#runbeforejob она его выгружает из mssql
#мы ее утягиваем. потом работает таска RunAfterJob
#и она удаляется
}
}

#1c_main files
FileSet {
Name = «1c_main_files»
Include {
Options {
signature = MD5
compression = GZIP8
}
#filelist
File = «D:/bases/1c_main»  #тут просто папка которую бекапим
}
}

#расписание бекапов
Schedule {
Name = «1c_main_sql_shed»  #было задано выше
Run = Full mon-sun at 22:00
}

Schedule {
Name = «1c_main_files_shed» #было задано выше
Run = Incremental tue-sun at 22:40
Run = Full mon at 22:40
}

В итоге получаем систему, которую можно легко (ну легче чем 1 гигансткий файл — факт)) править и конфигурять.