Консоль керування 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 в ручному режимі.
Я багато
Я багато дізналася про систему резервування і тепер буду розуміти про що йдеться! Спасибі за такий інформативний пост!