Bacula.pl

- rozwiązanie kopii zapasowych dla wymagających
Kategorie: WSZYSTKIE Newsy Artykuły Blog

Tajemnice bconsole czyli pierwsze kroki z tekstową konsolą Bacula cz.1

28 listopad 2010, autor: Marcin Haba (gani)

news

Praca w tekstowej konsoli bconsole może wymagać nieco wprawy szczególnie dla początkujących użytkowników Bacula. Pierwsza część artykułu przedstawia podstawowe komendy wybierania informacji przy pomocy bconsole i kierowana jest właśnie do osób zaczynających poznawanie konsoli Bacula.

Tekstowa konsola bconsole to podstawowe narzędzie administracyjne Bacula. Wyposażona jest w szereg komend, przy pomocy których można dokonywać operacji listowania danych oraz zarządzać innymi serwisami Bacula. Niniejsza pierwsza część artykułu poświęcona jest operacjom wybierania różnego typu informacji z bazy danych.

Informacje o wykonanych zadaniach

Jako "zadanie" przyjąłem nazywać wszystkie operacje, które możliwe są do zdefiniowania przy pomocy zasobu Job (m.in. backup, przywracanie danych, weryfikacja, kopia backupu, zadanie administracyjne, migracja backupu).

Do listowania informacji w bconsole służy komenda list. Do wyświetlenia wszystkich zadań do komendy list dodaje się parametr jobs:

list jobs

Ilustracja 1: Przykładowe wyjście komendy listowania zadań.

Ilustracja 1: Przykładowe wyjście komendy listowania zadań.

Powyższy listing zawiera listę 21 zadań. Nie jest to duża ilość i zapewne użytkownik w krótkim czasie jest w stanie ją przekroczyć. Gdy ilość zadań spowoduje, że przy komendzie ich listowania nie będą one już mieścić się na ekranie, to może oczywiście użyć przewijania w górę tekstowej konsoli (zazwyczaj skrót SHIFT+PAGE UP) lub przesuwać suwakiem w emulatorze terminala. Na pewno jest to jakieś rozwiązanie. Co jednak zrobić, gdy liczba wykonanych zadań przekroczy 1000? Wtedy ani nie będą mieścić się one w buforze tekstowej konsoli ani w zakresie suwaka emulatora terminala. Można w tym celu wykorzystać któreś z systemowych narzędzi jak choćby more lub less. W tym celu w systemowej linii komend (NIE w bconsole) można wydać polecenie jak poniżej:

echo "list jobs" | bconsole | more

lub

echo "list jobs" | bconsole | less

Komendy te spowodują wysłanie zapytania o listę zadań do konsoli bconsole, a następnie poprzez standardowe wyjście wynik zapytania zostanie przekierowany do programu zewnętrznej przeglądarki plików (np. more lub less).

Jeśli już wiadomo, że wynik przekazywanych komend do bconsole zwracany jest na standardowe wyjście to można wnioskować, że wyjście to można przekierować do każdego innego programu, który operuje na standardowym wyjściu (grep, awk, head, tail itp.), czy też przekierować wyjście bconsole do pliku. Co więcej, tego typu wywołanie konsoli Bacula można użyć do budowania własnych skryptów.

Na koniec dodam, że wywołanie te nie ogranicza się do listowania zadań poprzez komendę list jobs lecz można w nim wykorzystać dowolną komendę bconsole.

Aby ograniczyć ilość wyświetlanych zadań z komendy list jobs do jednego konkretnego zadania można użyć następującego wywołania w konsoli Bacula:

list jobid=13

Ilustracja 2: Listing wybranego zadania.

Ilustracja 2: Listing wybranego zadania.

Uzyskana powyżej lista wykonanych zadań poprzez komendę list jobs dostarcza kilka ważniejszych informacji o zadaniach. Nie są to jednak wszystkie informacje, jakie można uzyskać z konsoli bconsole.  Do wyświetlenia bardziej szczegółowych informacji o wybranym zadaniu służy komenda:

llist jobid=13

gdzie jako wartość jobid potrzeba wstawić identyfikator żądanego zadania (tutaj wstawiłem identyfikator o wartości 13).

Ilustracja 3: Szczegółowy listing wybranego zadania.

Ilustracja 3: Szczegółowy listing wybranego zadania.

Można również użyć komendy llist z parametrem jobs np:

llist jobs

Ilustracja 4: Szczegółowe informacje o wszystkich zadaniach.

Ilustracja 4: Szczegółowe informacje o wszystkich zadaniach.

lecz wtedy na ekranie zostaną wyświetlone szczegółowe informacje wszystkich wykonanych zadań, co przy kilkunastu zadaniach daje sporej długości listing. Nie jest to ani czytelny ani wygodny listing do analizowania. Z tego powodu polecam używać llist jobid=ID zamiast llist jobs.

Ostatnia komenda wyciągająca informacje o zadaniach jest swego rodzaju podsumowaniem ilości wykonanych zadań, ilości zapisanych plików i ilości zapisanych bajtów dla każdego zasobu typu Job. Dodatkowo wszystkie te wartości są zsumowane i podane jako całkowita ilość wykonanych zadań, plików i bajtów. Komenda wyciągająca te informacje z bazy danych to:

list jobtotals

Ilustracja 5: Podsumowanie wykonanych zadań.

Ilustracja 5: Podsumowanie wykonanych zadań.

Informacje o wolumenach

Kolejny zestaw komend, jakie zostaną przedstawione, służy do wybierania informacji o woluminach. Również tutaj użyta zostanie komenda list. Tym razem przełącznikiem będzie media lub volumes w następujący sposób:

list media

lub

list volumes

Ilustracja 6: Lista wszystkich woluminów.

Ilustracja 6: Lista wszystkich woluminów.

Parametry media i volumes w połączeniu z komendą list znaczą to samo i  można ich używać zamiennie. Z tego powodu nie ma znaczenia którego przełącznika użyjemy, gdyż otrzymany listing będzie dokładnie taki sam.

Podobnie jak w przypadku listy zadań, tak i tutaj istnieje możliwość wylistowania informacji o jednym tylko woluminie poprzez:

list media=nazwa_woluminu

lub

list volume=nazwa_woluminu

Ilustracja 7: Listing wybranego wolumina.

Ilustracja 7: Listing wybranego wolumina.

Również parametry media i volume mogą występować zamiennie podobnie jak w przypadku listy wszystkich woluminów.

Aby filtrować wyniki komendy list media (list volumes) do wyświetlenia woluminów określonej puli woluminów, potrzeba podać dodatkowy parametr pool, w którym podaje się nazwę puli, której woluminy chce się wyświetlić. Np.:

list media pool=nazwa_puli

lub

list volumes pool=nazwa_puli

Ilustracja 8: Ograniczona do jednej puli lista woluminów.

Ilustracja 8: Ograniczona do jednej puli lista woluminów.

Aby uzyskać szczególowe informacje o jednym tylko woluminie, można posłużyć się komendą llist w następujący sposób:

llist media=nazwa_woluminu

lub

llist volume=nazwa_woluminu

Ilustracja 9: Szczegółowe informacje o wybranym woluminie.

Ilustracja 9: Szczegółowe informacje o wybranym woluminie.

W komendzie llist volumes (lub llist media) można też ograniczać wynik do określonej puli woluminów poprzez:

llist volumes pool=nazwa_puli

lub

llist media pool=nazwa_puli

Informacje o pulach woluminów

Część informacji o pulach woluminów można było zauważyć w poprzednim podrozdziale, gdzie komenda list media (lub list volumes) pokazała zawartość puli woluminów czyli informacje o tym, jakie woluminy znajdują się w jakich pulach.

Komenda list pools daje możliwość wylistowania nieco więcej informacji na temat puli woluminów.

list pools

Ilustracja 10: Lista puli woluminów.

Ilustracja 10: Lista puli woluminów.

Komenda llist pool=nazwa_puli udostępnia szerszych informacji na temat jednej konkretnej puli woluminów.

llist pool=nazwa_puli

Ilustracja 11: Szczegółowe informacje wybranej puli woluminów.

Ilustracja 11: Szczegółowe informacje wybranej puli woluminów.

Tak jak w przypadku szczegółowego listowania informacji o zadaniu, tak i tutaj można wywołać komendę llist z parametrem pools lecz bez przypisanej do niej wartości. Wynikiem będzie uzyskanie szczegółowych informacji o wszystkich pulach woluminów.

llist pools

Ilustracja 12: Szczegółowe informacje o wszystkich pulach woluminów.

Ilustracja 12: Szczegółowe informacje o wszystkich pulach woluminów.

Lista plików zadania

W bazie danych Bacula, oprócz informacji o wykonanych zadaniach, woluminach czy pulach woluminów, przetrzymywane są również wszystkie nazwy zapisywanych plików wraz z ich lokalizacjami. Je również można wylistować w tekstowej konsoli Bacula, a służy do tego komenda:

list files jobid=identyfikator_zadania

lustracja 13: Lista plików wybranego zadania.

Ilustracja 13: Lista plików wybranego zadania.

Jako, że jedno zadanie niejednokrotnie może zawierać setki, tysiące, setki tysięcy czy więcej plików, warto zapisać je bezpośrednio do pliku lub użyć przekierowania standardowego wyjścia bconsole z systemowej linii komend do innego programu. Jak tego dokonać, zaprezentowałem przy okazji omawiania listowania zadań (list jobs). Tutaj przedstawię jak zapisywać listingi wykonanych komend do pliku wprost z tekstowej konsoli Bacula.

Do przekierowania wyjścia wyników komend służy komenda:

@output lokalizacja_pliku

np.

@output /tmp/pliki.txt

Po wywołaniu tej komendy, wynik każdej następnej komendy trafi do zdefiniowanego pliku (w tym wypadku to pliki.txt).

Aby wyłączyć "zrzucanie" wyników komend do pliku, wystarczy wywołać @output bez parametru, np:

@output

Zrzucenie listy zapisanych plików zadania o identyfikatorze 12 do pliku pliki.txt może wyglądać następująco:

@output /tmp/pliki.txt
list files jobid=12
@output

Podsumowanie

To tyle jeśli chodzi o wprowadzenie do wybierania informacji z bazy danych przy użyciu tekstowej konsoli Bacula lub poprzez systemową linię komend. W części drugiej artykułu zaprezentuję w jaki sposób wybierać dane z bazy danych przy użyciu zapytań SQL oraz jak tworzyć własne zestawy zapytań SQL.

 


Ta strona używa plików cookies (niezbędnych do prawidłowego działania oraz analitycznych). Odmów Wybierz ciasteczka Zezwól na wszystkie (więcej informacji)