Консоль керування Bacula

Система резервування Bacula складається з трьох основних фонових програм (демонів): Директора (Bacula Director); Зберігача (Bacula Storage Daemon) та Клієнта (Bacula File Daemon). Директор і Зберігач функціонують під керуванням Unix-подібних операційних систем, Клієнти існують як Unix-подібних систем, так і для Windows та Mac. Після правильного встановлення та налаштування ці програми функціонують автономно і, зазвичай, не потребують втручання в свою роботу. Для перевірки стану компонентів Bacula і результатів їх роботи а також для виконання деяких операцій "вручну" призначена Консоль керування (надалі просто Консоль) - програма призначена для взаємодії користувачів з Директором. В пропонованій статті розглянуті особливості різних модифікацій Консолі та операції, що можуть бути виконані за її допомогою.

Консоль керування

Існують кілька модифікацій Консолі:

  • bconsole - програма з текстовим інтерфейсом. Існують версії як Unix-подібних систем, так і для Windows.
  • bgnome-console - програма з графічним інтерфейсом, створена для середовища GNOME. Працює так само, як і bconsole.
  • bwx-console - програма з графічним інтерфейсом, створена за допомогою бібліотеки wxWidget. Надає можливість вибору файлів, які потрібно відновити, в графічному режимі. Існують версії як Unix-подібних систем, так і для Windows. Проте Windows-версія має суттєвий недолік - назви файлів та директорій кирилицею зображаються некоректно.
  • bat (Bacula Administration Tool) - програма з графічним інтерфейсом, створена за допомогою бібліотеки Qt. Надає найбільше можливостей порівняно з bgnome-console та bwx-console. Практично всі команди в bat можливо викликати за допомогою контекстного меню. Також можливо будувати графіки. Наразі bat доступний тільки для Unix-подібних операційних систем.

Спільним для всіх модифікацій консолі є можливість "ручного" введення команд, та перегляду результату їх виконання.

Слід зазначити, що крім Консолі існують також кілька web-інтерфейсів для моніторингу та керування системою Bacula: bweb, Webacula, Bacula-web. Їх встановлення та використання буде темою окремої статті.

Команди консолі

В таблиці наведені команди, що можна виконати в консолі. Аргументи команд показані у квадратних дужках.

Команда Дія
add [pool=<ім'я пулу> storage=<ім'я пристрою> jobid=<ідентифікатор завдання>] Додати новий пул.
autodisplay [on|off] Увімкнути або вимкнути автоматичний показ повідомлень. За замовчанням показуються тільки звістки про наявність нових повідомлень.
automount [on|off] Увімкнути або вимкнути автоматичне монтування магнітної стрічки після форматування командою label. За замовчанням увімкнено.
cancel [jobid=<ідентифікатор завдання> job=<ім'я завдання> ujobid=<номер завдання>] Скасувати завдання.
create [pool=<ім'я пулу>] Створити запис пулу в базу даних.
delete [volume=<ім'я тому> pool=<ім'я пулу> job jobid=<ідентифікатор завдання>] Видалити з каталогу інформацію про завдання, том або пул.
disable job [ім'я завдання] Заборонити автоматичне планування завдання.
enable job [ім'я завдання] Дозволити автоматичне планування завдання.
estimate [level=Full|Incremental|Differential] [job=<ім'я завдання>] [client=<ім'я клієнта>] [fileset=<ім'я набору файлів>] [listing] Приблизно підрахувати об'єм даних, що будуть збережені. Ключове слово listing виводить повний перелік файлів.
exit Вийти з програми.
gui [on|off] Інтерактивний або неінтерактивний режими роботи консолі.
help Показати перелік команд.
label Форматувати магнітну стрічку.
list [clients | pools | jobs | jobtotals | media <pool=ім'я пулу> | files <ідентифікатор завдання> | copies <ідентифікатор завдання>] Показати інформацію з бази даних.
llist Більш докладна інформація
messages Показати повідомлення від Директора
memory Використання пам'яті Директором
mount [storage=<ім'я пристрою>] [ slot=<номер> ] [ drive=<номер> ] [ jobid=<ідентифікатор завдання> | job=<ім'я завдання> ] Монтувати пристрій.
prune [files|jobs|volume client=<ім'я клієнта> volume=<ім'я тому>] Видалити з бази даних інформацію про файли, завдання або томи, термін зберігання яких добіг кінця.
purge Видалити записи з бази даних.
python Виконати команду мови Python.
quit Вийти з програми.
query Виконати один з 16-ти визначених SQL-запитів
restore Відновити файли в інтерактивному режимі
relabel

[storage=<ім'я Зберігача> oldvolume=<ім'я старого тому> volume=<ім'я нового тому>]. Наново відформатувати старий том. Том повинен бути в стані Purged или Recycle.

release [<storage-name>]. Перемотати стрічку. Перед наступним використанням стрічки перечітати мітку тому.
reload Прочитати наново конфігураційний файл bacula-dir.conf.
run [ run job=<ім'я завдання> client=<ім'я Клієнта> fileset=<ім'я набору файлів> level=<тип архівування: Full|Incremental|Differential> storage=<ім'я Зберігача> where=<Директор> when=<час у форматі YYYY-MM-DD HH:MM:SS> yes]. Запустити завдання.
status [all | dir=<ім'я Директора> | director | client=<ім'я Клієнта> | storage=<ім'я Зберігача> | days=nnn]. Показати стан відповідно Директора, Клієнта, Зберігача.
setdebug level=nn [trace=0/1 client=<ім'я Клієнта> | dir | director | storage=<ім'я Зберігача> | all].Вказати параметри налагоджування.
setip Задати адресу нового Клієнта.
show [jobs | pools | ... | all]. Показати інформацію про завдання, пули, томи, Директори, Зберігачі, Клієнти, повідомлення, набори файлів, розклади тощо.
sqlquery Перейти до режиму прямого виконання SQL-команд. Кожна команда завершується крапкою з комою. Вихід - комою.
time Друкувати поточний час
trace [on/off]. Увімкнути/вимкнути запис до файла.
unmount [storage=<ім'я Зберігача> [ drive=<num> ] or unmount [ jobid=<ідентифікатор завдання> | job=<ім'я завдання> ]]. Демонтувати пристрій.
umount Теж саме, що і unmount.
update Оновити інформацію про томи або пули.
use <ім'я бази даних>. Використовувати вказану базу даних.
var Використання змінних
version Друкувати версію Директора
wait [<jobname=name> | <jobid=nnn> | <ujobid=complete_name>]. Чекати на завершення завдання.

Відновлення файлів

Найчастіше Консоль використовують для відновлення втрачених файлів. Для виконання цієї операції призначена команда restore. Якщо виконати команду без параметрів, то буде надруковано меню з пропозицією вибрати один або кілька ідентифікаторів завдання (JobId), що містять файли, які потрібно відновити. Пропонуються кілька методів визначення JobId. Далі, необхідно визначити, які файли з вибраних JobId повинні бути відновлені:

To select the JobIds, you have the following choices: Ви маєте наступні опції для вибору:
1: List last 20 Jobs run 1: Список останніх 20 виконаних завдань
2: List Jobs where a given File is saved 2: Список завдань, де був збережений потрібний файл
3: Enter list of comma separated JobIds to select 3: Ввести через кому список JobId
4: Enter SQL list command 4: Ввести SQL-команду
5: Select the most recent backup for a client 5: Вибрати останню резервну копію для вказаного Клієнта
6: Select backup for a client before a specified time 6: Вибрати останню резервну копію для вказаного Клієнта перед певною датою і часом
7: Enter a list of files to restore 7: Ввести список файлів для відновлення
8: Enter a list of files to restore before a specified time 8: Ввести список файлів для відновлення перед вказаною датою і часом
9: Find the JobIds of the most recent backup for a client 9: Знайти JobId останньої резервної копії для вказаного Клієнта
10: Find the JobIds for a backup for a client before a specified time 10: Знайти JobId останньої резервної копії для вказаного Клієнта перед певною датою і часом
11: Enter a list of directories to restore for found JobIds 11: Ввести список директорій, що потрібно відновити для знайденого JobId
12: Cancel 12: Скасувати операцію

Після визначення JobId, їх значення можна вказати в якості аргументів команди Enter list of comma separated JobIds to select. Вибір файлів відбувається в інтерактивному режимі, де доступні наступні команди:

add Додати файли та директорії до тих, які потрібно відновити
cd Змінити поточну директорію
count Друкувати кількість позначених файлів
delete Вилучити файли та директорії з переліку тих, які потрібно відновити
dir Друкувати вміст поточної директорії в розширеному режимі
done Завершення режиму вибору файлів
estimate Приблизно підрахувати об'єм даних, що будуть відновлені
exit Завершення режиму вибору файлів
find Пошук файлів
help Друкувати довідку
ls Друкувати перелік файлів і каталогів поточної директорії
lsmark Друкувати перелік позначених файлів і каталогів
mark Позначити файли та директорії, які потрібно відновити
markdir Позначити директорії, які потрібно відновити
pwd Друкувати поточну директорію
unmark Прибрати позначення з файлів та директорій
unmarkdir Прибрати позначення з директорій
quit Скасувати відновлення та вийти
? Друкувати довідку

При заданні аргументів для команд add, dir, find, ls, mark можна використовувати шаблони. Так, для вибору усіх файлів можна в інтерактивному режимі задати команду mark *, або виконати команду restore з параметром all.

Наприклад, необхідно відновити файли з комп'ютера programmer станом на дату останнього архівування:

*restore all
Automatically selected Catalog: default
Using Catalog "default"

First you select one or more JobIds that contain files
to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.

To select the JobIds, you have the following choices:
1: List last 20 Jobs run
2: List Jobs where a given File is saved
3: Enter list of comma separated JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
9: Find the JobIds of the most recent backup for a client
10: Find the JobIds for a backup for a client before a specified time
11: Enter a list of directories to restore for found JobIds
12: Cancel
Select item: (1-12): 5
Defined Clients:
1: programmer-fd
2: uchet01294-fd
3: plan00330-fd
4: kadry-fd
5: pto01334-fd
6: pto00860-fd
7: proxy-fd
8: basesrv-fd
9: uchet00403-fd
10: uchet000859-fd
11: plan00328-fd
12: plan01381-fd
13: secretar01178-fd
14: buhgalt00823-fd
15: ohrana-truda-fd
16: uchet00472-fd
17: uchet01292-fd
18: buhgalt00841-fd
19: buhgalt00340-fd
20: buhgalt00341-fd
21: buhgalt00269-fd
22: buhgalt00856-fd
23: ads-fd
24: smu-fd
25: secretar-fd
Select the Client (1-25): 1
Automatically selected FileSet: Programmer Set
+-------+-------+----------+----------+---------------------+-----------------+
| JobId | Level | JobFiles | JobBytes | StartTime | VolumeName |
+-------+-------+----------+----------+---------------------+-----------------+
| 2,810 | I | 3 | 2,855 | 2009-04-22 12:05:03 | Programmer-0001 |
| 2,838 | I | 1 | 119 | 2009-04-23 12:05:03 | Programmer-0001 |
| 2,866 | I | 1 | 119 | 2009-04-24 12:05:03 | Programmer-0001 |
| 2,902 | I | 4 | 6,438 | 2009-04-27 12:05:03 | Programmer-0001 |
| 2,931 | I | 2 | 57,026 | 2009-04-28 12:05:03 | Programmer-0001 |
| 2,959 | I | 4 | 12,814 | 2009-04-29 12:05:03 | Programmer-0001 |
| 2,987 | I | 2 | 6,409 | 2009-04-30 12:05:03 | Programmer-0001 |
| 3,103 | I | 4 | 9,313 | 2009-05-06 12:05:03 | Programmer-0001 |
| 3,131 | I | 1 | 119 | 2009-05-07 12:05:03 | Programmer-0001 |
| 3,161 | I | 2 | 9,200 | 2009-05-08 12:05:02 | Programmer-0001 |
| 3,346 | I | 1 | 119 | 2009-05-18 12:05:03 | Programmer-0001 |
| 3,375 | I | 7 | 62,193 | 2009-05-19 12:05:03 | Programmer-0001 |
| 3,404 | I | 1 | 119 | 2009-05-20 09:17:29 | Programmer-0001 |
| 3,405 | I | 3 | 28,571 | 2009-05-20 11:19:19 | Programmer-0001 |
+-------+-------+----------+----------+---------------------+-----------------+
You have selected the following JobIds: 2810,2838,2866,2902,2931,2959,2987,3103,3131,3161,3346,3375,3404,3405

Building directory tree for JobId(s) 2810,2838,2866,2902,2931,2959,2987,3103,3131,3161,3346,3375,3404,3405 ...
16 files inserted into the tree and marked for extraction.

You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added, unless
you used the "all" keyword on the command line.
Enter "done" to leave this mode.

cwd is: /
$ done
Bootstrap records written to /var/db/bacula/proxy-dir.restore.6.bsr

The job will require the following
Volume(s) Storage(s) SD Device(s)
===========================================================================

Programmer-0001 DefaultStorage DevStor


22 files selected to be restored.

Run Restore job
JobName: RestoreFiles-localhost
Bootstrap: /var/db/bacula/proxy-dir.restore.6.bsr
Where: /mnt/backup/restores
Replace: always
FileSet: Localhost Set
Backup Client: programmer-fd
Restore Client: programmer-fd
Storage: DefaultStorage
When: 2009-05-20 14:02:38
Catalog: default
Priority: 10
Plugin Options: *None*
OK to run? (yes/mod/no): yes
Job queued. JobId=3435

Операцію було виконано в консолі bconsole. Жирним шрифтом позначені команди, що були введені з клавіатури.

В варіантах консолі bwx-console та bat операцію відновлення файлів можливо, також, виконувати в графічному режимі, без ручного введення команд.

Висновки

Консоль керування Bacula має текстові та графічні варіанти як для Unix-подібних систем, так і для Windows. Завдяки консолі можливо швидко та зручно виконувати операції з системою резервування Bacula в ручному режимі.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Я багато

Я багато дізналася про систему резервування і тепер буду розуміти про що йдеться! Спасибі за такий інформативний пост!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

© Інформаційні технології. Аналітика , Рідна Мережа