Debian Jessie: Установка и настройка bacula
Это заметка из цикла стетей моего небольшого HowTo по Debian Jessie.
Напомню что я описывал свою небольшую сетку и ее составляющие тут.
Настройка будет проводится на двух серверах nas.my.local и gw.my.local, я постараюсь указывать на каком сервере что выполнятеся, но также будет видно и в приветствии шела. Роли у них будут такие:
nas.my.local — основной менеджер (bacula-dir), хранилище (bacula-sd), консоль (bacula-console) и клиент (bacula-fd)
gw.my.local — основной клиент (bacula-fd) для бекапа (настройки, сайты, базы mysql …)
С ролями определились, вперед к настройке!
Особенность bacula такова, что все компоненты системы в конфигах должны быть заданы через FQDN имена серверов.
Напомню что у меня настроен DNS сервер и есть локальная зона my.local. Значит можно создать в данной зоне DNS необходимые записи для бакулы. На сервере gw.my.local открываем конфиг локальной зоны:
И добавляем такие записи (не забываем также увеличить параметр serial):
nas-fd IN A 192.168.1.5
dir IN A 192.168.1.5
sd IN A 192.168.1.5
Перечитываем конфиги:
Если у вас нету локального DNS, можете на всех серверах где будут установлены компоненты bacula добавить в локальный файл /etc/hosts:
192.168.1.1 nas-fd nas-fd.my.local
192.168.1.5 dir dir.my.local
192.168.1.5 sd sd.my.local
Также на сервере gw.my.local у меня настроен iptables, поэтому необходимо добавить розрешение конекта с сервера nas.my.local на сервер gw.my.local port 9102
Открываем конфиг с правилами iptables:
Добавляем туда вот что (я добавил сразу после правила для NTP):
# Allow NTP for local network
-A INPUT -i eth0 -p udp --dport 123 -j ACCEPT
# Allow connect to Bacula-FD from nas.my.local
-A INPUT -i eth0 -p tcp --dport 9102 -j ACCEPT
# Now you should read up on iptables rules and consider whether ssh access
...
Применяем новый конфиг iptables:
Настройка клиента на сервере gw.my.local (bacula-fd)
Ну и поскольку мы уже на сервере gw.my.local, предлагаю сразу установить bacula-fd, настроить его и запустить.
Ставим пакет bacula-fd:
Добавляем сервис в автозагрузку:
Открываем основной конфиг File Daemon-а:
В секции Director с именем gw-dir исправляем Name и Password:
Name = nas-dir
Password = "_fd_gw_some_passwd_" # from /etc/bacula/client-gw.conf on nas
}
В секции Director с именем gw-mon исправляем Name и Password:
Name = nas-mon
Password = "_some_nas-mon_passwd_" # from /etc/bacula/bacula-dir.conf on nas
Monitor = yes
}
В секции FileDaemon с именем gw-fd исправляем FDAddress:
Name = gw-fd
...
FDAddress = gw-fd.my.local
}
Сохраняем, выходим, перезапускаем сервис bacula-fd:
Настройка клиента, Storage Daemon и директора на сервере nas.my.local (bacula-fd, bacula-sd, bacula-director)
Теперь заходим по ssh на сервер nas.my.local и создаем для бэкапов bacula отдельную директорию /bacula:
Создаем отдельный LV для хранения бэкапов:
Logical volume "lv_bacula" created
nas:~$
Создаем на нем файловую систему ext4:
Добавляем в /etc/fstab запись для монтирования нового LV:
Монтируем:
Создаем 2 директории, одну для хранения бэкапов — backup, вторую на случай востановления файлов — restore
Ограничиваем права доступа:
nas:~$ sudo chmod 0700 /bacula
Для бакулы нужна база данных. В простых случаях можно обойтись и sqlite, но я планирую ставить кое какие эксперименты в дальнейшем и для этого мне нужен будет postgres, поэтому ставлю postgres.
Делаю для него отдельный LV:
Создаю файловую систему:
Останавливаем сервис postgresql:
Монтируем новый раздел и сливаем на него содержимое директории /var/lib/postgresql:
nas:~$ sudo rsync -Pavl /var/lib/postgresql/ /mnt/
Проверяем что директория скопировалась:
total 20
drwxr-xr-x 3 postgres postgres 4096 Nov 27 07:51 9.4
drwx------ 2 root root 16384 Nov 27 07:55 lost+found
nas:~$
Отмонтируем /mnt
Очищаем директорию /var/lib/postgresql/
Добавляем в конфиг /etc/fstab строчку для монтирование LV-шки /dev/mapper/st13-postgresql
Монтируем новую LV согласно конфига /etc/fstab:
Проверяем что смонтировалось:
/dev/mapper/st13-postgresql on /var/lib/postgresql type ext4 (rw,noatime,nodiratime,data=ordered)
nas:~$
Отлично! Сервис postgresql добавляем в автозагрузку и запускаем:
nas:~$ sudo systemctl start postgresql
Переходим под пользователя postgres:
Переходим в консоль postgres:
psql (9.4.5)
Type "help" for help.
postgres=# ALTER ROLE postgres WITH PASSWORD '_my_PG_pass_here_';
ALTER ROLE
postgres=# \q
postgres@nas:~$
Выходим из под пользователя postgres и возвращаемся в свою админскую учетку:
logout
nas:~$
Открываем конфиг /etc/postgresql/9.4/main/pg_hba.conf:
Все строчки внизу меняем на md5, у меня получилось вот так:
local all postgres md5
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
После этого нужно релоаднуть сервис postgresql:
Устанавливаем основные компоненты bacula на сервере nas:
В процессе спрашивает про настройку базы данных для bacula, жмем «Yes»
Следующий вопрос про метод подключения: unix socket или tcp/ip. Я выбрал сокет
Следующий вопрос про метод авторизации: ident или password. Я выбрал password
Следующий вопрос про метод авторизации: ident или password. Я выбрал password
Следующий вопрос аккаунт с админ правами в postgres. Написано правильно — postgres, жмем Enter
Следующий вопрос Пароль на аккаунт postgres. Вводим тот пароль что мы задавали ранее _my_PG_pass_here_ и Enter
Следующий вопрос Username в postgres для bacula-director. Я ввел baculadir
Следующий вопрос Название базы данных postgres для bacula-director. Я ввел baculadb
После чего увидел в консоли вот такой вывод:
Replacing config file /etc/dbconfig-common/bacula-director-pgsql.conf with new version
creating postgres user baculadir: success.
verifying creation of user: success.
creating database baculadb: success.
verifying database baculadb exists: success.
populating database via administrative sql... done.
populating database via sql... done.
dbconfig-common: flushing administrative password
Processing configuration...Replacing config file /etc/bacula/scripts/delete_catalog_backup with new version
Ok.
nas:~$
Тут я не понял какой пароль будет у пользователя baculadir, поэтому я решил задать его явно вручную. Для этого заходим в консоль postgresql под пользователем postgres:
Password for user postgres:
psql (9.4.5)
Type "help" for help.
postgres=#
И выполняем вот такую команду для смены пароля пользователю baculadir:
ALTER ROLE
postgres=#
Выходим из консольки postgresql:
nas:~$
Настройка компонентов bacula
Начнем с простого — настройка bacula-sd:
В секции Storage исправляем SDAddress и проверяем Name:
Name = nas-sd
...
SDAddress = sd.my.local
...
}
В секции Director с именем nas-dir задаем Password:
Name = nas-dir
Password = "_some_sd_password_"
}
В секции Director с именем nas-mon задаем Password:
Name = nas-mon
Password = "_some_nas-mon_passwd_"
Monitor = yes
}
В секции Device исправляем Archive Device:
...
Archive Device = /bacula/backup
...
}
Сохраняем, выходим, проверяем конфиг Storage Daemon-а:
nas:~$
Все замечательно, можно перезапускать сервис bacula-sd (он стартует по дефолту после установки):
Теперь настроим bacula-fd
Открываем конфиг:
В секции Director с именем nas-dir исправляем Password:
Name = nas-dir
Password = "_fd_nas_some_passwd_" # from /etc/bacula/client-nas.conf on nas
}
В секции Director с именем nas-mon исправляем Password:
Name = nas-mon
Password = "_some_nas-mon_passwd_" # from /etc/bacula/bacula-dir.conf on nas
Monitor = yes
}
В секции FileDaemon исправляем FDAddress:
...
FDAddress = nas-fd.my.local
...
}
Сохраняем, выходим, проверяем конфиг File Daemon-а:
nas:~$
Все замечательно, можно перезапускать сервис bacula-fd (он стартует автоматом после установки):
Теперь настроим bacula-console.
Открываем конфиг:
В секции Director исправляем address и Password:
...
address = dir.my.local
Password = "_some_dir_password_"
}
Проверка конфига не повредит:
nas:~$
Теперь самое сложное, настройка Bacula Director.
Открываем основной конфиг:
В секции Director исправляем DirAddress и Password:
...
Password = "_some_dir_password_" # from /etc/bacula/bconsole.conf
...
DirAddress = dir.my.local
}
Идем дальше, секция JobDefs мне не нужна — комментирую:
# Name = "DefaultJob"
# Type = Backup
# Level = Incremental
# Client = nas-fd
# FileSet = "Full Set"
# Schedule = "WeeklyCycle"
# Storage = File
# Messages = Standard
# Pool = File
# Priority = 10
# Write Bootstrap = "/var/lib/bacula/%c.bsr"
#}
Слудующая секция Job для клиента Client1 мне тоже не нужна — комментирую:
# Name = "BackupClient1"
# JobDefs = "DefaultJob"
#}
Слудующая секция Job для каталога BackupCatalog мне тоже не нужна — комментирую:
#Job {
# Name = "BackupCatalog"
# JobDefs = "DefaultJob"
# Level = Full
# FileSet="Catalog"
# Schedule = "WeeklyCycleAfterBackup"
# # This creates an ASCII copy of the catalog
# # Arguments to make_catalog_backup.pl are:
# # make_catalog_backup.pl <catalog-name>
# RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup.pl MyCatalog"
# # This deletes the copy of the catalog
# RunAfterJob = "/etc/bacula/scripts/delete_catalog_backup"
# Write Bootstrap = "/var/lib/bacula/%n.bsr"
# Priority = 11 # run after main backup
#}
Идем дальше, ищем секцию Job с именем Name = «RestoreFiles» в ней исправляем путь к директории для восстановленных файлов и Storage:
Name = "RestoreFiles"
...
Storage = nas-sd
...
Where = /bacula/restore
}
Идем дальше, секция Client мне не нужна в этом конфиге, для клиентов будут отдельные конфиги — комментирую:
#Client {
# Name = nas-fd
# Address = localhost
# FDPort = 9102
# Catalog = MyCatalog
# Password = "XXX_FDPASSWORD_XXX" # password for FileDaemon
# File Retention = 30 days # 30 days
# Job Retention = 6 months # six months
# AutoPrune = yes # Prune expired Jobs/Files
#}
Дальше секция Storage, тут указываем Address и Password:
...
Address = sd.my.local
SDPort = 9103
Password = "_some_sd_password_" # from /etc/bacula/bacula-sd.conf section Director, name nas-dir
...
Дальше секция Catalog, тут настраивается подключение к базе данных:
Name = MyCatalog
dbname = "baculadb"; dbuser = "baculadir"; dbpassword = "_some_baculadir_pass_"
}
И последняя секция Console указываем пароль, который берем из конфига bacula-sd.conf секция Director с именем nas-mon:
Name = nas-mon
Password = "_some_nas-mon_passwd_" # from /etc/bacula/bacula-sd.conf section Director, name nas-mon
CommandACL = status, .status
}
Теперь в конце конфига добавляем инклуд будущих конфигов для клиектов бекапа.
@/etc/bacula/client-gw.conf
@/etc/bacula/client-nas.conf
Сохраняем конфиг директора, выходим с эдитора.
Почему я сделал инклудом клиентские конфиги? Потому что из моего опыта так намного удобней. Те конфиги что идут по умолчанию (bacula-dir/bacula-sd/bacula-fd) достаточно «один раз настроить и забыть», основные изменения в процессе эксплуатации, если и производятся, то именно в клиентских конфигах (перенастройка FileSet, Shedule, Pool и тд) Работать с отдельными клиентскими конфигами намного удобней, так как не нужно искать по огромному конфигу bacula-dir конкретную секцию определенного клиента, а достаточно просто открыть конфиг конкретного клиента и все его настройки как на ладони.
Конфиг клиента gw-fd.my.local — /etc/bacula/client-gw.conf
Открываем текстовый редактор vim:
И вставляем туда следующее:
Name = "backup_gw"
Type = Backup
Level = Full
Client = gw-fd
FileSet = "fileset_gw"
Schedule = "shedule_weekly_gw"
Messages = Standard
Pool = gw_pool
Write Bootstrap = "/var/lib/bacula/%c.bsr"
Priority = 3
}
FileSet {
Name = "fileset_gw"
Include {
Options {
signature = MD5
compression = GZIP
recurse = yes
xattrsupport = yes
}
File = /etc
}
Exclude {
File = /usr/local/www
}
}
Schedule {
Name = "shedule_weekly_gw"
Run = Level=Full 1st sun at 4:35
Run = Level=Differential 2nd-5th sun at 4:35
Run = Level=Incremental mon-sat at 4:35
}
Client {
Name = gw-fd
Address = gw-fd.my.local
FDPort = 9102
Catalog = MyCatalog
Password = "_fd_gw_some_passwd_"
File Retention = 45 days
Job Retention = 6 months
AutoPrune = yes
}
Pool {
Name = gw_pool
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 65 days # 65 days
Recycle Oldest Volume = yes
Maximum Volume Bytes = 4400m # Limit Volume size to something reasonable
Maximum Volumes = 5 # Limit number of Volumes in Pool
Label Format = "gw_pool-vol"
Storage = nas-sd
}
Конфиг клиента nas-fd.my.local — /etc/bacula/client-nas.conf
Открываем текстовый редактор vim:
И вставляем туда следующее:
Name = "backup_nas"
Type = Backup
Level = Full
Client = nas-fd
FileSet = "fileset_nas"
Schedule = "shedule_weekly_nas"
Messages = Standard
Pool = nas_pool
Write Bootstrap = "/var/lib/bacula/%c.bsr"
Priority = 3
}
FileSet {
Name = "fileset_nas"
Include {
Options {
signature = MD5
compression = GZIP
recurse = yes
xattrsupport = yes
}
File = /etc
}
Exclude {
File = /usr/local/www
}
}
Schedule {
Name = "shedule_weekly_nas"
Run = Level=Full 1st sun at 5:05
Run = Level=Differential 2nd-5th sun at 5:05
Run = Level=Incremental mon-sat at 5:05
}
Client {
Name = nas-fd
Address = nas-fd.my.local
FDPort = 9102
Catalog = MyCatalog
Password = "_fd_nas_some_passwd_"
File Retention = 45 days
Job Retention = 6 months
AutoPrune = yes
}
Pool {
Name = nas_pool
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 65 days # 65 days
Recycle Oldest Volume = yes
Maximum Volume Bytes = 4400m # Limit Volume size to something reasonable
Maximum Volumes = 5 # Limit number of Volumes in Pool
Label Format = "nas_pool-vol"
Storage = nas-sd
}
Эти оба конфига содержат пароли, так что рекомендую дать права на чтение/запись для root и на чтение группе bacula:
nas:~$ sudo chmod 0640 /etc/bacula/client-*
Проверяем конфиг директора (если ничего не выдает — конфиг корректный):
nas:~$
Перезапускаем сервис:
Пробуем войти в консоль:
Смотрим в консоли общий статус системы, должны увидеть чтото в таком духе:
Connecting to Director dir.my.local:9101
1000 OK: nas-dir Version: 5.2.6 (21 February 2012)
Enter a period to cancel a command.
*status all
nas-dir Version: 5.2.6 (21 February 2012) x86_64-pc-linux-gnu debian jessie/sid
Daemon started 03-Dec-15 09:14. Jobs: run=0, running=0 mode=0,0
Heap: heap=266,240 smbytes=55,910 max_bytes=57,190 bufs=237 max_bufs=245
Scheduled Jobs:
Level Type Pri Scheduled Name Volume
===================================================================================
Incremental Backup 3 04-Dec-15 05:05 backup_gw *unknown*
Incremental Backup 3 04-Dec-15 05:05 backup_nas *unknown*
====
Running Jobs:
Console connected at 03-Dec-15 09:15
No Jobs running.
====
No Terminated Jobs.
====
Connecting to Storage daemon nas-sd at sd.my.local:9103
nas-sd Version: 5.2.6 (21 February 2012) x86_64-pc-linux-gnu debian jessie/sid
Daemon started 01-Dec-15 07:46. Jobs: run=0, running=0.
Heap: heap=270,336 smbytes=18,467 max_bytes=78,115 bufs=55 max_bufs=57
Sizes: boffset_t=8 size_t=8 int32_t=4 int64_t=8 mode=0,0
Running Jobs:
No Jobs running.
====
Jobs waiting to reserve a drive:
====
Terminated Jobs:
====
Device status:
Device "FileStorage" (/bacula/backup) is not open.
====
Used Volume status:
====
====
Connecting to Client gw-fd at gw-fd.my.local:9102
gw-fd Version: 5.2.6 (21 February 2012) x86_64-pc-linux-gnu debian jessie/sid
Daemon started 03-Dec-15 08:20. Jobs: run=0 running=0.
Heap: heap=270,336 smbytes=16,852 max_bytes=16,999 bufs=49 max_bufs=50
Sizeof: boffset_t=8 size_t=8 debug=0 trace=0
Running Jobs:
Director connected at: 03-Dec-15 09:15
No Jobs running.
====
Terminated Jobs:
====
Connecting to Client nas-fd at nas-fd.my.local:9102
nas-fd Version: 5.2.6 (21 February 2012) x86_64-pc-linux-gnu debian jessie/sid
Daemon started 03-Dec-15 09:15. Jobs: run=0 running=0.
Heap: heap=270,336 smbytes=15,765 max_bytes=15,912 bufs=48 max_bufs=49
Sizeof: boffset_t=8 size_t=8 debug=0 trace=0
Running Jobs:
Director connected at: 03-Dec-15 09:15
No Jobs running.
====
Terminated Jobs:
====
You have messages.
*
Пробуем выполнить job бекапа для сервера gw:
Using Catalog "MyCatalog"
Run Backup job
JobName: backup_gw
Level: Full
Client: gw-fd
FileSet: fileset_gw
Pool: gw_pool (From Job resource)
Storage: nas-sd (From Pool resource)
When: 2015-12-03 09:18:42
Priority: 3
OK to run? (yes/mod/no): yes
Job queued. JobId=1
*
Смотрим статус выполнения:
Connecting to Client gw-fd at gw-fd.my.local:9102
gw-fd Version: 5.2.6 (21 February 2012) x86_64-pc-linux-gnu debian jessie/sid
Daemon started 03-Dec-15 08:20. Jobs: run=1 running=0.
Heap: heap=270,336 smbytes=94,708 max_bytes=177,531 bufs=61 max_bufs=105
Sizeof: boffset_t=8 size_t=8 debug=0 trace=0
Running Jobs:
Director connected at: 03-Dec-15 09:19
No Jobs running.
====
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
======================================================================
1 Full 2,007 2.052 M OK 03-Dec-15 09:18 backup_gw
====
*
Бекап выполнился без ошибок (Status OK)! Напомню что в FileSet в данный момент включена только директория /etc, для тестов при запуске системы этого более чем достаточно.
Теперь пробуем запустить аналогичный job для сервере nas.my.local:
Run Backup job
JobName: backup_nas
Level: Full
Client: nas-fd
FileSet: fileset_nas
Pool: nas_pool (From Job resource)
Storage: nas-sd (From Pool resource)
When: 2015-12-03 09:23:00
Priority: 3
OK to run? (yes/mod/no): yes
Job queued. JobId=2
*
Смотрим статус:
Connecting to Client nas-fd at nas-fd.my.local:9102
nas-fd Version: 5.2.6 (21 February 2012) x86_64-pc-linux-gnu debian jessie/sid
Daemon started 03-Dec-15 09:15. Jobs: run=1 running=0.
Heap: heap=270,336 smbytes=93,621 max_bytes=176,411 bufs=60 max_bufs=104
Sizeof: boffset_t=8 size_t=8 debug=0 trace=0
Running Jobs:
Director connected at: 03-Dec-15 09:23
No Jobs running.
====
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
======================================================================
2 Full 1,988 926.2 K OK 03-Dec-15 09:23 backup_nas
====
*
Тоже job выполнился без ошибок.
Бекапы обоих серверов выполнились без ошибок, значит осталось продумать FileSet и Shedule для каждого из клиентов и подкорректировать конфиги. Хорошим правилом настройки bacula является минимальное количество одновременно выполняющихся job-ов. Когда клиентов не слишком много, job-ы можно просто рознести во времени с помощью шедулера. Пробуем продумать оптимальную последовательность бекапа, не забываем что на сервере gw.my.local настроен бекап всех баз mysql по крону на 03:00 ночи. У меня получилось вот так:
— 03:00 (gw.my.local) — бекап mysql баз по cron-у
— 04:05 (nas.my.local) — бекап бакулой
— 05:05 (gw.my.local) — бекап бакулой
Как видите я выделил по часу на каждую задачу, этого в моем случае более чем достаточно и хватит с запасом на долго. В реальности каждый их этих бекапов длится не более 5 минут, но базы ростут, файлов становится больше …
Теперь что касается более точной настройки FileSet или что конкретно нам нужно бекапить.
— На сервере nas.my.local кроме настроек системы (директория /etc) есть еще настроенный WEB Torrent клиент в отдельной директории (/home/torrent) вот и все … Суммарный размер этих двух директорий в несжатом виде около 25 MB
Вот FileSet и Shedule для такого случая (nas.my.local — /etc/bacula/client-nas.conf):
Name = "fileset_nas"
Include {
Options {
compression = GZIP9
noatime = yes
onefs = yes
recurse = yes
signature = MD5
sparse = yes
}
File = /etc
File = /home/torrent
}
Exclude {
File = lost+found
}
}
Schedule {
Name = "shedule_weekly_nas"
Run = Level=Full 1st sun at 4:05
Run = Level=Differential 2nd-5th sun at 4:05
Run = Level=Incremental mon-sat at 4:05
}
— На сервере gw.my.local кроме настроек системы (директория /etc) есть еще настроенный web сервер (/srv/www и /var/www) и бекапы MySQL баз (/backup). Суммарный размер этих директорий в несжатом виде около 4 GB. Но тут еще один нюанс, хотелось бы исключить из бекапа файлы логов web сервера которые расположены по маске /srv/www/*/logs/* В сложных случаях опций нужно иметь ввиду, что согласно документации bacula дефолтными опциями являются те что ниже всех в конфиге. Поэтому exclude я розместил сверху, а compression/recurse/signature и прочие — внизу.
Вот FileSet и Shedule для такого случая (gw.my.local — /etc/bacula/client-gw.conf):
Name = "fileset_gw"
Include {
Options {
Wild = "/srv/www/*/logs/*"
exclude = yes
}
Options {
compression = GZIP9
noatime = yes
onefs = yes
recurse = yes
signature = MD5
sparse = yes
}
File = /etc
File = /backup
File = /srv/www
File = /var/www
}
Exclude {
File = lost+found
}
}
Schedule {
Name = "shedule_weekly_gw"
Run = Level=Full 1st sun at 5:05
Run = Level=Differential 2nd-5th sun at 5:05
Run = Level=Incremental mon-sat at 5:05
}
После изменений FileSet и Shedule не забывайте проверить конфигурацию директора и перезапустить сервис:
nas:~$
Перезапускаем сервис:
В процессе дебага FileSet здорово помогает команда estimate в bconsole.
Входим в консоль:
И набираем вот такую команду:
Результатом этой команды будет полный листинг файлов/директорий которые будут бекапиться при текущей настройке FileSet:
drwxr-xr-x 10 root root 4096 2015-06-30 13:15:41 /srv/www
-rw-r--r-- 1 root root 53 2015-04-27 13:39:31 /var/www/default/index.html
drwxr-xr-x 2 root root 4096 2015-04-27 13:39:31 /var/www/default
-rw-r--r-- 1 root root 867 2015-04-24 11:17:32 /var/www/html/index.nginx-debian.html
-rw-r--r-- 1 root root 11104 2015-04-27 07:37:56 /var/www/html/index.html
drwxr-xr-x 2 root root 4096 2015-04-27 13:38:09 /var/www/html
...
Также в процессе начальной настройки и тестирования бывает что мы набекапили непойми чего и хочется корректно удалить старые бекапы и начать сначала. Крайне не желательно просто удалять файлы волумов из директории /bacula/ потому что в Catalog останется куча инфы которая будет ссылаться на эти волум-файлы. Для такого случая есть отдельная процедура.
Сначала в bconsole нужно удалить волумы:
This command will delete volume gw_pool-vol0001
and all Jobs saved on that volume from the Catalog
Are you sure you want to delete Volume "gw_pool-vol0001"? (yes/no): yes
*delete volume=nas_pool-vol0004
This command will delete volume nas_pool-vol0004
and all Jobs saved on that volume from the Catalog
Are you sure you want to delete Volume "nas_pool-vol0004"? (yes/no): yes
*
а потом уже удалять файлы с файловой системы:
nas:~$ sudo rm /bacula/backup/gw_pool-vol0001
Теперь можно начинать сначала …
Для закрепления понимания рекомендую поглядывать в официальную документацию.
Для тех кто бекапит через Интернет рекомендую настраивать с поддержкой SSL шифрования, такой вариант я настраивал ранее на FreeBSD, но отличия там только в генерации сертификатов и нескольких дополнительных опциях связанных с ними. Считаю что разобраться не очень трудно. В любом случае, если вы новичок — лучше сначала настроить вариант без шифрования, а потом уже прикрутить сертификаты.
P.S. В процессе настройки обязательно пользуйтесь проверкой конфигурации, также первое время рекомендую просматривать лог файл на сервере с директором /var/log/bacula/bacula.log — это полный журнал работы системы.
P.P.S. Для тех кто совсем запутался с паролями/именами/конфигами (у меня так было когда я настраивал bacula первый раз) выкладываю архивчик с готовыми конфигами по данной доке, просто скопируйте их себе в /etc/bacula меняйте имена хостов и пароли на желаемые и запускайте сервисы … все должно работать. FileSet в них содержит только директорию /etc — поэтому смело запускайте бекапы и только после корректного выполнения первых job-ов перестраивайте FileSet под свои задачи.
Хай щастить!
Комментов пока нет