> Jak wymusić exit code 0?
To zależy jakiego języka programowania używasz i jak się to w danym języku robi.
Dla przykładu zakończenie działania programu w języku C realizowane jest poprzez funkcję:
exit(0);
W przypadku Bourne Shell (/bin/sh) jest podobnie, chociaż składnia jest trochę odmienna:
exit 0
itd, itp.
> Chodzi właśnie o to, że jeśli z jakiegoś powodu dysk X sie nie zamapuje (...)
To w swoim skrypcie musisz zapewnić że jeśli dysk się nie zamontuje poprawnie to skrypt musi zakończyć się z exit code > 0. To spowoduje że zadanie także będzie błędne.
Czy ktokolwiek z mających ten problem sprawdził, czy Unmount Command wykonuje polecenie korzystając z shella, czy bezpośrednio? Pokazałem drogę i możliwe rozwiązanie, udało się?
> niestety nie wspiera iSCSI . Jedynie CIFS, NFS.
Podmontował bym po NFS, ale taka konfiguracja jest niewspierana i były przypadki że po zapełnieniu się miejsca na takim NFS ostatnio zapisywany wolumen był uszkodzony (przycięty) i Bacula oraz zdziwiony administrator odkryli ten problem dopiero podczas odtwarzania danych. Problem wynika z tego, że często system operacyjny z opóźnieniem zauwa
Nic nie zrobi, a dokładniej powstrzyma się przed automatycznym tworzeniem/dodawaniem nowych wolumenów do tej puli do czasu aż ilość wolumenów w puli będzie mniejsza niż ustawiony limit.
Parametry: Maximum Spool Size i Maximum Job Spool Size bardziej zależą od wielkości przestrzeni dyskowej jaką możesz przeznaczyć na spool, niż od zastosowanej technologii taśmowej. Dobre praktyki w takich przypadkach sugerują by Maximum Job Spool Size był nie mniejszy niż Maximum File Size, a najlepiej aby był jego wielokrotnością.
W jakim dziale chciałbyś umieścić tego posta?
A odpowiadając na nurtujące Cię pytanie i zaistniały problem, to jest on niezwiązany z Bacula (tak wynika z błędu: "TS3100_Drive1" (/dev/nst0). ERR=Błąd wejścia/wyjścia.). Bacula oczekuje, że w slocie 5 masz włożoną taśmę zaetykietowaną (bacula label) jako: 000163L2 i przed wykonaniem zapisu na tą taśmę chce zwyczajnie zweryfikować tą ety
Nie do końca zrozumiałem co chcesz osiągnąć, bo sytuacja gdzie ClientRunBeforeJob zakończy działanie z błędem powoduje że zadanie backupowe nie wykona się (zakończy z błędem) jest działaniem standardowym, nic nie trzeba dodatkowo robić. Bacula weryfikuje czy CRBJ zakończył się poprawnie za pomocą exit code z uruchomionego skryptu lub aplikacji. Jeśli exit code = 0 to jest ono poprawne i zadanie b
Nie pokazałeś logu. :)
Może najlepszym rozwiązaniem będzie podział backupu tych 200 baz danych na oddzielne zadania tak aby ten "timeout" nie występował. Ewentualnie wykorzystanie pluginu bpipe-fd do bezpośredniego backupowania poszczególnych baz danych bez wykonywania kroku pośredniego, co powinno znacząco skrócić całkowity czas backupu.
artbski Napisał(a):
-------------------------------------------------------
> Hej. Jaki macie sposób na archiwizację danych na
> urządzeniu NAS. Model, o którym pisze w temacie
> nie posiada możliwości instalacji
> clienta Bacula.
Jeśli chcesz dane archiwizować na tym NAS to bardziej przydał by się Bacula Storage Daemon a nie klient. :)
> Jak "podmontowujecie"
Pawelos Napisał(a):
-------------------------------------------------------
> Przyznam szczerze, że jestem laikiem i nie wiem
> jak sprawdzić na jakim użytkowniku działa
> Bacula SD:?
# ps -ef|grep bacula-sd
:)
> Co do reszty:
> Korzystałem z paczek dystrybucyjnych debina w
> wersji 9, wersja baculi 7.4.4. Zmieniłem Archive
> Device na /tmp i pokazuje mi:
>
Na jakim użytkowniku działa Bacula SD? Sprawdź czy z tego użytkownika możesz zapisać jakikolwiek plik do tego katalogu? Oraz dodatkowe informacje, czy kompilowałeś Bacula sam, czy korzystałeś z paczek dystrybucji? Jaka to dystrybucja i jaka wersja Bacula? Czy mógłbyś zrobić testową konfigurację Bacula SD, gdzie Archive Device wskazywał by na /tmp zamiast na /mnt/backup i wtedy wykonał label jak p
Ale to nie jest problem po stronie Bacula tylko konfiguracji systemu operacyjnego. Pokazałeś błąd przy poleceniu label, który mówił: Brak dostępu. To oznacza, że Bacula Storage Daemon nie może zapisywać do wskazanej przez Ciebie lokalizacji (chyba /mnt/backup). Jak nie może zapisywać do tej lokalizacji, to w jaki sposób chciałbyś aby Bacula wykonywała dla Ciebie kopie zapasowe? Zastanów się nad t
Pawelos Napisał(a):
-------------------------------------------------------
> Witam,
> Chodziło mi o to, że przy pełnym dostępie do
> katalogu o nazwie "backup" z uprawnieniami
> użytkownika root, bacula nie zapisuje
> określonych danych. Najgorsze jest to, że nie
> wiem w którym miejscu szukać błędu
To jeszcze raz. Czy możesz to dokładniej wyjaśnić i teraz
Konto ma być takie z jakimi uprawnieniami uruchomiony jest Bacula Storage Daemon. Może to być dowolne konto i zazwyczaj ze względów bezpieczeństwa stosuje się bacula.
Quote
bo na koncie roota nawet przy dostępie 777 (co jest dziwne) niestety nadal to samo
Co to znaczy, czy możesz dokładniej wyjaśnić o co chodzi, a najlepiej z przykładami.
Na początek proponuję zapoznać się z dokumentacją: , masz tam m.in. część: Automatic Volume Labeling, które opowie Ci w jaki sposób ustawić aby Bacula sama kreowała wolumeny jeśli będą jej potrzebne (jako że backupujesz na dysk, to jest to zalecana konfiguracja). Proponuję jednak pierwszy testowy wolumen stworzyć ręcznie za pomocą polecenia:
label
tak aby być pewnym że podstawowa część konfigu
Coś tutaj jest nie tak jak być powinno. Stworzone wolumeny mają rozmiar zero, a do tego jeden z nich ma status Full. W jaki sposób tworzyłeś te wolumeny, czy może Bacula stworzyła je sama?
Ale zdajesz sobie sprawę, że konfiguracja po stronie Bacula to pikuś. Znacznie trudniejsze jest uruchomienie narzędzia aby wykonywało dokładnie to o co nam chodzi. A przykład, po prostu wstawiasz wywołanie narzędzia do skryptu uruchamianego przed backupem i kasującego dane po backupie:
Client Run Before Job = "/opt/bacula/scripts/vmbackup/snapshotvm.sh maszyna1"
Client Run After Job
To ciekawe. Wygląda tak jakby opiekun pakietów Bacula w Ubuntu wprowadził tą zmianę na własną rękę. W Bacula kompilowana ze źródeł (wprawdzie wersja 9.0.5, ale w tym zakresie nic się nie zmieniało):
bacula-dir.conf:
JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Incremental
Client = swift-fd
FileSet = "Full Set"
Schedule = "WeeklyCycle"
Możliwe, że wiem co nie działa w Twoim przypadku. Otórz podczas standardowego backupu Dir łączy się z FD i przekazuje mu adres SD do którego FD ma się połączyć aby wykonać backup. Jest to standardowy adres SD pod jakim Dir komunikuje się z SD, więc zapewne w Twoim przypadku jest to adres lokalny w lokalizacji Y. Można to obsłużyć na dwa sposoby, po pierwsze skorzystać z parametru "SD Calls C