%%
%%


\chapter{Mit Bacula beginnen}
\label{QuickStartChapter}
\index[general]{Mit Bacula beginnen }

Wenn Sie wie ich sind, wollen Sie dass Bacula sofort l\"{a}uft, damit Sie ein Gefühl für das Programm bekommen und sich erst sp\"{a}ter mit den Details befassen. Dieses Kapitel m\"{o}chte genau dieses erreichen: Das Programm ohne die ganzen Einzelheiten rasch zum Laufen zu bringen. Wenn Sie den Abschnitt über Pools, Volumes und Labels überspringen wollen, k\"{o}nnen Sie ihn sp\"{a}ter immer noch nachholen, aber lesen Sie bitte bis zum Ende des Kapitels und beachten Sie die Anweisungen zum Test Ihres Bandlaufwerkes genau.

Wir gehen davon aus, dass Sie es geschafft haben, Bacula zu kompilieren und zu installieren. Wenn nicht, werfen sie vielleicht zuerst einen Blick auf die
\ilink{System-Anforderungen}{SysReqs} und dann auf das Kapitel 
\ilink{Bacula kompilieren und installieren}{_ChapterStart17} in diesem Handbuch. 

\label{JobsandSchedules}
\section{Jobs und Zeitpl\"{a}ne verstehen}
\index[general]{Jobs!verstehen}
\index[general]{Zeitpl\"{a}ne!verstehen}

Um Bacula so anpassungsf\"{a}hig wie m\"{o}glich zu machen, bestehen die Anweisungen, die sein Verhalten bestimmen, aus verschiedenen Teilen. Die wichtigste Direktive ist die Job-Resource, welche jeweils eine Sicherungsaufgabe beschreibt. Ein Sicherungs-Job besteht im allgemeinen aus einem FileSet, einem (Sicherungs-)Client und einem Zeitplan mit einer oder mehreren Arten und Zeiten der Sicherung, einem Pool und zus\"{a}tzlichen Instruktionen. Mit anderen Worten: Mit dem FileSet wird bestimmt was gesichert werden soll, mit dem Client, wer sichern soll, der Zeitplan bestimmt wann dies geschehen soll und der Pool wohin gesichert werden soll (z.B. auf welches Volume).
Typischerweise bestimmt jeweils eine Kombination FileSet/Client einen Job. Die meisten der Direktiven wie FileSets, Pools und Zeitpl\"{a}ne k\"{o}nnen für mehrere Jobs verwendet werden und so beliebig kombiniert werden. Sie k\"{o}nnten z.B. zwei verschiedene Job-Definitionen (resources) haben, welche die Daten verschiedener Server sichern, dabei aber den gleichen Zeitplan, das gleiche FileSet (auf beiden Rechnern werden die gleichen Verzeichnisse gesichert) und vielleicht sogar die gleichen Pools nutzen. Der Zeitplan wird festlegen, welche Art der Sicherung wann l\"{a}uft (z.B. Montags eine Vollsicherung, an den übrigen Wochentage inkrementielle Sicherung) und wenn mehr als ein Job den gleichen Zeitplan hat, wird die Job-Priorit\"{a}t bestimmen, welcher Job tats\"{a}chlich als erster l\"{a}uft. Wenn Sie viele Jobs haben, werden Sie m\"{o}glicherweise JobDefs benutzen wollen, in denen Sie Vorgaben für alle Jobs festlegen, die dann in den einzelnen Job-Resourcen individuell angepasst werden k\"{o}nnen, es Ihnen aber ersparen, für jeden Job die gleichen Parameter zu definieren. Zus\"{a}tzlich zu den durch die FileSets festgelegten zu sichernden Dateien sollte es auch einen Job geben, der Ihre Catalog-Dateien sichert.

Schlie{\ss}lich gibt es neben den Sicherungs-Jobs Wiederherstellungs-Jobs, Verifikationen und administrative Jobs, die andere Direktiven erfordern.

\label{PoolsVolsLabels}
\section{Pools, Volumes und Labels verstehen}
\index[general]{Verstehen!von Pools, Volumes und Labels}
\index[general]{Pools, Volumes und Labels verstehen }

Wenn Sie bisher Programme wie {\bf tar} zur Datensicherung verwendet haben, werden Ihnen Begriffe Pools, Volumes und Label auf den ersten Blick vielleicht etwas verwirrend vorkommen. Ein Volume ist ein einzelnes physikalisches Band (oder m\"{o}glicherweise eine einzelne Datei), auf die Bacula die Daten Ihrer Sicherung schreibt. Pools sind Gruppen von Volumes, so dass eine Sicherung nicht auf die Gr\"{o}{\ss}e eines einzelnen Volumes (die L\"{a}nge eines Bandes) beschr\"{a}nkt ist. Daher werden Sie bei der Definition eines Job eher einen Pool anstatt einzelner Volumes spezifizieren. Bacula wird das n\"{a}chste verfügbare Volume dem Pool entnehmen und Sie auffordern, es zu mounten.

W\"{a}hrend die grundlegenden Eigenschaften eines Pools in der Pool-Resource des Directors festgelegt sind, werden die Daten der realen Pools im Bacula-Catalog gehalten. Er enth\"{a}lt alle Informationen der Pool-Resourcen und auch die Informationen über alle Volumes, die einem Pool zugefügt wurden. Ein Volume wird normalerweise mit dem {\bf label}-Befehl des Konsolen-Proramms dem Pool hinzugefügt.

Für jedes Volume h\"{a}lt Bacula eine ziehmliche Menge von Catalog-Informationen vor, wie z.B. den Zeitpunkt des ersten Lesens/Beschreibens, den Zeitpunkt des letzten Lesens/Beschreibens, die Anzahl der Dateien, die es enth\"{a}lt, die Anzahl der Mounts, usw.

Bevor Bacula ein Volume beschreibt, muss das physikalische Volume eine digitale Kennzeichnung erhalten, damit Bacula sicher sein kann, dass das richtige Volumen gemountet ist. Dies erledigt normalerweise der {\bf label}-Befehl des Konsolen-Programms.

Das Vorgehen, zuerst eine Pool zu schaffen, dann Volumes hinzuzufügen und die Volumes digital zu kennzeichnen, mag zu Anfang mühselig erscheinen, ist aber ganz einfach und erlaubt es, mehrere Volumes zu verwenden (anstatt auf die Speicherkapazi\"{a}t eines Bandes beschr\"{a}nkt zu sein). Durch Pools wird man bei der Sicherung auch ausgesprochen flexibel. Man kann sich z.B einen ``t\"{a}glichen'' Pool für inkrementielle und einen ``w\"{o}chentlichen'' Pool für Vollsicherungen anlegen. Sind bei der Definition der Sicherungsjobs die richtigen Pools angegeben, wird Bacula niemals einen Tagesjob in ein Volume des w\"{o}chentlichen Pools schreiben oder umgekehrt und Ihnen stets sagen, wann welches Band ben\"{o}tigt wird.

Weiteres zu Pools im Abschnitt \ilink{Pool-Resource}{PoolResource} des Kapitels ``Director-Konfiguration''. Auch in diesem Kapitel werden wir sp\"{a}ter auf dieses Thema zurückkommen.

\section{Baculas Konfigurations-Dateien einrichten}
\label{config}
\index[general]{Baculas Konfigurations-Dateien einrichten }
\index[general]{einrichten!von Baculas Konfigurations-Dateien }

Wenn Sie Bacula zum ersten Mal verwenden, müssen Sie, nachdem Sie den entsprechenden {\bf ./configure}-Befehl, ein {\bf make} und ein {\bf make install} ausgeführt haben, gültige Konfigurationsdateien für den Director, den File-D\"{a}mon, den Storage-D\"{a}mon und die Console erstellen. Wenn Sie sich nach unseren Empfehlungen gerichtet haben, finden Sie in Ihrem Installationsverzeichnis sowohl Vorgabe-Konfigurationsdateien als auch die ausführbaren Dateien der D\"{a}monen. In jedem Fall sind die Programmdateien in jenem Verzeichnis, welches bei der Ausführung des {\bf ./configure}-Befehls mit der Option {\bf \verb{--{sbindir} und die Konfigurationsdateien in jenem Verzeichnis, welches mit der {\bf \verb{--{sysconfdir}-Option angegeben wurde.


Wenn Sie Bacula zum ersten Mal installieren, werden Sie etwas Zeit brauchen, um die Konfigurationsdateien so zu ver\"{a}ndern, dass Sie zu Ihrer Umgebung passen. Das wird mit sich bringen, dass Sie Bacula einige Male starten und wieder beenden müssen bis alles stimmt. Verzweifeln Sie nicht! Sind die Konfigurationsdateien einmal erstellt, werden Sie diese nur noch selten \"{a}ndern und auch Bacula nicht sehr oft starten oder stoppen müssen. Die meiste Arbeit wird darin bestehen, B\"{a}nder zu wechseln, wenn sie voll sind.

\subsection{Die Konfiguration des Console-Programms}
\index[general]{Konfiguration des Console-Programms }
\index[general]{Console-Programm!die Konfiguration des }

Das Condsole-Programm wird vom Administrator benutzt, um mit dem Director-Prozess zu interagiern und Jobs manuell zu starten und zu beenden oder Informationen zu einzelnen Jobs zu erhalten.

Die Konfigurationsdatei der Console ist in jenem Verzeichnis, das mit der {\bf
\verb{--{sysconfdir}-Option bei der Ausführung des {\bf ./configure}-Befehl spezifiziert wurde und hei{\ss}t vorgabem\"{a}{\ss}ig {\bf console.conf}.

Wenn Sie auch die GNOME-Console mit der {\bf \verb{--{enable-gnome}-Option kompiliert haben, finden Sie auch hierfür eine Vorgabe-Konfigurationsdatei die {\bf gnome-console.conf} hei{\ss}t.

Gleiches gilt für die wxWidgets-Console, die mit der {\bf
\verb{--{enable-wx-console}-Option kompiliert wird und deren Vorgabe-Konfigurationdsdatei {\bf wx-console.conf} ist.

Benutzen Sie Bacula zum ersten Mal, wüssen Sie diese Dateien nicht \"{a}ndern, da brauchbare Vorgabewerte schon gesetzt sind

\subsubsection*{Die Konfiguration des Monitor-Programms}
\index[general]{Monitor-Programm!die Konfiguration des }
\index[general]{Konfiguration des Monitor-Programms }

Das Monitor-Programm erscheint typischerweise als Icon in der Kontrollleiste. Wird dieses zu einem Fenster vergr\"{o}{\ss}ert, liefert es dem Administrator Informationen über den Director, den Sicherungsstatus des lokalen Rechners oder jeden anderen konfigurierten D\"{a}mon-Prozess.

\addcontentsline{lof}{figure}{Bacula Tray Monitor}
\includegraphics{./Bacula-tray-monitor.eps} 

Die Abbildung zeigt ein Fenster des Tray-Monitors, der für drei D\"{a}mon-Prozesse konfiguriert wurde. Wenn man auf die Schaltfl\"{a}chen in der oberen rechten Ecke des Fensters klickt, sieht man den Zustand jedes einzelnen Prozesses. Die Abbildung zeigt den Zustand des momentan ausgew\"{a}hlten Storage-D\"{a}mons (MainSD).

Die Konfigurationsdatei des Monitor-Programms befindet sich in jenem Verzeichnis, das bei Ausführung des {\bf ./configure}-Befehls mit der Option {\bf \verb{--{sysconfdir} angegeben wurde. In der Regel müssen Sie als Erstbenutzer die Berechtigung für diese Datei \"{a}ndern, um Benutzern, die keine root-Rechte haben, zu erlauben, den Monitor zu starten, da diese Anwendung unter dem gleichen Benutzer laufen muss wie die grafische Umgebung (vergessen Sie nicht, nicht-root-Benutzern die Ausführung von {\bf bacula-tray-monitor} zu erlauben). Solange Sie die Vorgabewerte verwenden, ist dies kein Sicherheitsproblem.

\subsubsection*{Die Konfiguration des File-D\"{a}mon}
\index[general]{File-D\"{a}mon!die Konfiguration des}
\index[general]{Konfiguration des File-D\"{a}mon }

Der File-D\"{a}mon ist ein Programm, das auf jedem (Client-)Rechner l\"{a}uft. Auf Anforderung des Directors sucht er die zu sichernden Dateien und schickt sie (bzw. ihre Daten) an den Storage-D\"{a}mon.

Die Konfigurationsdatei des File-D\"{a}mon ist in jenem Verzeichnis, das bei Ausführung des {\bf ./configure}-Befehls mit der Option {\bf \verb{--{sysconfdir} angegeben wurde. Vorgabem\"{a}{\ss}ig hei{\ss}t diese Datei {\bf bacula-fd.conf}. Normalerweise muss für erste Versuche hier nichts ge\"{a}ndert werden, da vernünftige Vorgabewerte gesetzt sind. Will man allerdings die Daten von mehreren Rechnern sichern, muss auf jedem dieser Rechner ein File-D\"{a}mon mit einer eigenen Konfigurationsdatei installiert sein. Die Daten aller dieser File-D\"{a}mons müssen in der Konfigurationsdatei des Directors erscheinen.

\subsubsection*{Die Konfiguration des Directors}
\index[general]{Director!die Konfiguration des }
\index[general]{Die Konfiguration des Directors}

Der Director ist das zentrale Steuerungsprogramm aller anderen D\"{a}mon-Prozesse. Er terminiert und überwacht alle Sicherungsjobs.

Die Konfigurationsdatei des Directors liegt in jenem Verzeichnis, das durch die Option {\bf \verb{--{sysconfdir} bei der Ausführung des {\bf ./configure}-Befehls angegeben wurde. Der Name dieser Konfigurationsdatei ist normalerweise {\bf bacula-dir.conf}.

Im Allgemeinen muss darin nur die Ressource ``FileSet'' ge\"{a}ndert werden, so dass ihre {\bf Include}-Direktive mindestens eine Zeile mit einem gültigen Verzeichnis (oder einer Datei) enth\"{a}lt, die/das zu sichern ist.

Wenn Sie kein DLT-Bandlaufwerk haben, werden Sie m\"{o}glicherweise die Storage-Resource \"{a}ndern wollen, so dass diese Ihrem tats\"{a}chlichen Sicherungsger\"{a}t mehr entspricht. Sie k\"{o}nnen hier immer die tats\"{a}chlichen Namen verwenden und k\"{o}nnen diese auch beliebig zuweisen, doch müssen sie mit jenen übereinstimmen, die in der Konfigurationsdatei des Storage-D\"{a}mon angegeben sind.

M\"{o}glicherweise wollen Sie auch die E-Mailadresse zur Benachrichtigung von der Vorgabe {\bf root} auf Ihre eigene \"{a}ndern.

Schlie{\ss}lich brauchen Sie, wenn Sie mehrere Rechner sichern wollen, für jedes System einen eigenen File-D\"{a}mon bzw. Client und müssen seinen Namen, seine Adresse und ein Passwort spezifizieren. Wir meinen, dass es die Fehlersuche sehr erleichtert, wenn wir den D\"{a}monen den Namen des Rechners geben und ein {\bf -fd} anh\"{a}ngen. Wenn Ihr Rechner also z.B. {\bf foobaz} hei{\ss}t, würden Sie den File-D\"{a}mon {\bf foobaz-fd} nennen. Der Director k\"{o}nnte {\bf foobaz-dir} hei{\ss}en und der Storage-D\"{a}mon {\bf foobaz-sd}.
Jede Ihrer Bacula-Komponenten \textbf{muss} einen eindeutigen Namen haben. Wenn Sie alle gleich benennen, werden Sie  - abgesehen davon, dass sie nicht wissen werden, welcher D\"{a}mon Ihnen welche Botschaft schickt - eigenartige Fehlermeldungen erhalten, da die Namen ihrer Tempor\"{a}rdateien nicht eindeutig sind, sofern sie das gleiche Arbeitsverzeichnis benutzen. 

\subsubsection*{Die Konfiguration des Storage-D\"{a}mon}
\index[general]{Daemon!Configuring the Storage }
\index[general]{Die Konfiguration des Storage-D\"{a}mon}

Auf Veranlassung des Director-Prozesses ist der Storage-D\"{a}mon für die Übernahme der Daten vom File-D\"{a}mon und ihrer Speicherung auf dem Sicherungsmedium verantwortlich, bzw. im Falle einer Wiederherstellung für das Finden und die Übergabe der Daten an den File-D\"{a}mon.

Die Konfigurationsdatei der Storage-D\"{a}mons ist in dem Verzeichnis, das bei Ausführung des  {\bf ./configure}-Befehls mit der {\bf \verb{--{sysconfdir}-Option angegeben wurde und hei{\ss}t vorgabem\"{a}{\ss}ig {\bf bacula-sd.conf}. Bearbeiten Sie diese Datei, damit sie die korrekten Archivierungsger\"{a}tenamen für jedes Ihrer Bandger\"{a}te enth\"{a}lt. Wenn bei der Konfiguration Ihr System richtig erkannt wurde, werden sie schon richtig gesetzt sein. Die Namen dieser Storage-Resourcen und der Media Type müssen mit jenen übereinstimmen, die in der Konfigurationsdatei des Directors stehen. Wenn Sie in eine Datei anstatt auf ein Band sichern wollen, muss als Archive-Ger\"{a}t ein Verzeichnis angegeben sein, in dem dann die Volumes erzeugt werden und schlie{\ss}lich die Dateien, sobald ein Volume gelabelt wird.

\label{ConfigTesting}
\section{Test der Konfigurationsdateien}
\index[general]{Test der Konfigurationsdateien}
\index[general]{Konfigurationsdateien!Test der  }

Sie k\"{o}nnen die Konfigurationsdateien auf korrekte Syntax testen, indem sie den entsprechenden D\"{a}mon mit der {\bf -t}-Option starten. Der D\"{a}mon wird die Konfigurationsdatei abarbeiten, gegebenenfalls eine Fehlermeldung ausgeben und sich dann beenden. Das folgende Beispiel geht davon aus, dass die Programm- und die Konfigurationsdateien im gleichen Verzeichnis installiert sind.

\footnotesize
\begin{verbatim}
cd <installation-directory>
./bacula-dir -t -c bacula-dir.conf
./bacula-fd -t -c bacula-fd.conf
./bacula-sd -t -c bacula-sd.conf
./bconsole -t -c bconsole.conf
./gnome-console -t -c gnome-console.conf
./wx-console -t -c wx-console.conf
su <normal user> -c "./bacula-tray-monitor -t -c tray-monitor.conf"
\end{verbatim}
\normalsize

Hiermit werden alle Konfigurationsdateien der wichtigsten Programme getestet. Sind diese in Ordnung, beendet sich das Programm, ohne irgendetwas auszugeben. Beachten sie bitte, dass je nach gew\"{a}hlten Konfigurationsoptionen einige oder sogar alle der letzten drei Befehle auf Ihrem System nicht verfügbar sein werden. Wenn Sie die ausführbaren Dateien in die üblichen Unix-Verzeichnisse statt in ein einziges Verzeichnis installiert haben, müssen Sie die obigen Befehle entsprechend anpassen (das ``./'' vor dem Befehlsname weglassen und den Pfad vor den Namen der Konfigurationsdatei angeben).

\label{TapeTesting}

\section{Test der Kompatibilit\"{a}t von Bacula mit Ihrem Bandlaufwerk}
\index[general]{Bandlaufwerk! Kompatibilit\"{a}tstest}
\index[general]{Test der Kompatibilit\"{a}t von Bacula mit Ihrem Bandlaufwerk }

Bevor Sie viel Zeit mit Bacula verschwenden, um schlie{\ss}lich herauszufinden, dass das Programm doch nicht mit Ihrem Bandlaufwerk zusammenarbeitet, lesen Sie bitte das Kapitel \ilink{btape -- Test Ihres Bandlaufwerkes}{_ChapterStart27} in diesem Handbuch.

Wenn Sie ein neueres SCSI-Bandlaufwerk unter Linux oder Solaris benutzen, wird Bacula vermutlich funktionieren, aber probieren Sie das lieber vorher aus. Benutzer von FreeBSD (und m\"{o}glicherweise andere xBSD-Varianten) müssen das oben erw\"{a}hnte Kapitel lesen. Für FreeBSD gibt es unter \elink{The FreeBSD Diary}{http://www.freebsddiary.org/bacula.php} eine eingehende Beschreibung, wie man Bacula auf Ihrem System zum Laufen bringt. Benutzer von FreeBSD in einer Version vor 4.9-STABLE vom Montag, dem 29.12.2003, 15:18:01, die vorhaben ein Bandlaufwerk zu verwenden, sollten ausserdem die Datei {\bf platforms/freebsd/pthreads-fix.txt} in Baculas Hauptverzeichnis lesen. Darin sind wichtige Informationen zur Kompatibilit\"{a}t von Bacula und Ihrem System.

\label{notls}

\section{Das /lib/tls Verzeichnis entfernen}
\index[general]{Das /lib/tls Verzeichnis entfernen }

Die neue Pthreads-Bibliothek {\bf /lib/tls}, welche standardm\"{a}{\ss}ig von neueren ``RedHat''-Systemen (Kernelversion 2.4.x) installiert wird, ist fehlerhaft. Dieses Verzeichnis muss entfernt oder umbenannt werden, bevor Bacula dann nach einem Neustart lauff\"{a}hig ist. Geschieht dies nicht, wird sich Bacula nach etwa einer Woche Laufzeit entweder für l\"{a}ngere Zeitspannen oder dauerhaft blockieren. Man wird hier wohl eher die entsprechende Umgebungsvariable überschreiben, anstatt das Verzeichnis /lib/tls zu entfernen. Mehr zu diesem Problem im Kapitel \ilink{Unterstützte Betriebssysteme}{SupportedOSes}.

Auf Systemen mit Kernel-Version 2.6.x scheint dieses Problem nicht aufzutreten.

\label{Running1}

\section{Bacula in Betrieb}
\index[general]{Bacula in Betrieb }

Der vielleicht wichtigste Teil beim Betrieb on Bacula ist die F\"{a}higkeit, Dateien wiederherzustellen. Wenn Sie dies nicht wenigstens einmal ausprobiert haben, bevor Sie tats\"{a}chlich gezwungen sind, es zu tun, werden Sie viel mehr unter Druck stehen und dazu neigen, Fehler zu machen, als wenn sie diesen Vorgang schon einmal getestet haben.

Um eine Vorstellung davon zu bekommen, wie man Bacula in kurzer Zeit zum Laufen bringt empfehlen wir \textbf{dringend}, das Beispiel im Kapitel \ilink{Running Bacula Chapter}{_ChapterStart1} in diesem Handbuch nachzuvollziehen, wo im einzelnen erkl\"{a}rt wird, wie man Bacula laufen l\"{a}sst.

\section{Log Rotation}
\index[general]{Rotation!Log }
\index[general]{Log Rotation }

Wenn Sie die vorgegebene {\bf bacula-dir.conf} oder eine Abwandlung davon benutzen, werden Sie bemerken, dass alle Ausgaben von Bacula in eine Datei gespeichert werden. Um zu verhindern, dass diese Datei ohne Grenze w\"{a}chst, empfehlen wir, die Datei {\bf logrotate} aus dem Verzeichnis {\bf scripts/logrotate} nach {\bf /etc/logrotate.d/bacula} zu kopieren. Dadurch wird die Logdatei einmal im Monat rotiert und h\"{o}chstens fünf Monate lang erhalten. Um die Logrotation Ihren Wünschen anzupassen, k\"{o}nnen Sie diese Datei bearbeiten.

\section{Log Watch}
\index[general]{Watch!Log}
\index[general]{Log Watch}
Auf manchen Systemen wie RedHat und Fedora l\"{a}uft jede Nacht ein Logwatch-Programm, das Ihre Log-Dateien analysiert und per E-Mail berichtet. Wenn Sie die Ausgaben Ihrer Bacula-Sicherungsjobs diesen Berichten hinzufügen wollen, werfen sie einen Blick in das Verzeichnis {\bf scripts/logwatch}. In der {\bf README}-Datei in diesem Verzeichnis wird kurz erkl\"{a}rt, wie man es installiert und welche Ausgaben zu erwarten sind.

\section{Disaster Recovery}
\index[general]{Recovery!Disaster }
\index[general]{Disaster Recovery }

Wenn sie vorhaben, Bacula eher als Werkzeug zur Wiederherstellung Ihres Systems im Notfall, als nur dazu zu verwenden, besch\"{a}digte oder verlorengegangene Dateien wiederherzustellen, werden sie vielleicht das Kapitel \ilink{Disaster Recovery Using Bacula Chapter}{_ChapterStart38} in diesem Handbuch lesen wollen.

Auf jeden Fall raten wir Ihnen dringend, die Wiederherstellung einiger gesicherte Dateien zu testen anstatt zu warten, bis ein Notfall eintritt.
