Einführung
Bacula ist eine Open-Source-Netzwerk-Backup-Lösung, mit der Sie Backups erstellen und Daten auf Ihren Computersystemen wiederherstellen können. Es ist sehr flexibel und robust, wodurch es, obwohl es etwas umständlich zu konfigurieren ist, in vielen Situationen für Backups geeignet ist. Ein Backup-System ist eine important component in den meisten Serverinfrastrukturen, von der aus wiederhergestellt wird Datenverlust ist häufig ein kritischer Bestandteil von Disaster Recovery-Plänen.
In diesem Tutorial zeigen wir Ihnen, wie Sie die Serverkomponenten von Bacula auf einem CentOS 7-Server installieren und konfigurieren. Wir werden Bacula so konfigurieren, dass ein wöchentlicher Job ausgeführt wird, der ein lokales Backup erstellt (d. H. ein Backup seines eigenen Hosts). Dies ist an sich keine besonders überzeugende Verwendung von Bacula, bietet Ihnen jedoch einen guten Ausgangspunkt für die Erstellung von Backups Ihrer anderen Server, d. H. die Backup-Clients. Das nächste Tutorial in dieser Reihe behandelt das Erstellen von Backups Ihrer anderen Remote-Server, indem Sie den Bacula-Client installieren und konfigurieren und den Bacula-Server konfigurieren.
Wenn Sie stattdessen lieber Ubuntu 14.04 verwenden möchten, folgen Sie diesem Link: How To Install Bacula Server unter Ubuntu 14.04.
Voraussetzungen
Sie müssen auf einem CentOS 7-Server über Superuser-Zugriff (Sudo) verfügen. Außerdem benötigt der Server ausreichend Speicherplatz für alle Sicherungen, die Sie zu einem bestimmten Zeitpunkt aufbewahren möchten.
Wenn Sie DigitalOcean verwenden, sollten Sie * Private Networking * auf Ihrem Bacula-Server und allen Client-Servern aktivieren, die sich in derselben Datencenter-Region befinden. Auf diese Weise können Ihre Server beim Durchführen von Sicherungen das private Netzwerk verwenden, wodurch der Netzwerk-Overhead verringert wird.
Wir werden Bacula so konfigurieren, dass der private FQDN unserer Server verwendet wird, z. + bacula.private.example.com +
. Wenn Sie kein DNS-Setup haben, verwenden Sie stattdessen die entsprechenden IP-Adressen. Wenn Sie das private Netzwerk nicht aktiviert haben, ersetzen Sie alle Netzwerkverbindungsinformationen in diesem Lernprogramm durch Netzwerkadressen, die von den betreffenden Servern erreichbar sind (z. B. öffentliche IP-Adressen oder VPN-Tunnel).
Die letzte Annahme ist, dass SELinux deaktiviert ist oder Sie SELinux-bezogene Probleme selbst beheben können.
Schauen wir uns zunächst eine Übersicht der Bacula-Komponenten an.
Bacula Komponentenübersicht
Obwohl Bacula aus mehreren Softwarekomponenten besteht, folgt es dem Server-Client-Sicherungsmodell. Um die Diskussion zu vereinfachen, konzentrieren wir uns mehr auf den * Backup-Server * und die * Backup-Clients * als auf die einzelnen Bacula-Komponenten. Trotzdem ist es wichtig, flüchtige Kenntnisse über die verschiedenen Bacula-Komponenten zu haben, deshalb werden wir sie jetzt durchgehen.
Ein Bacula * Server *, den wir auch als "Backup-Server" bezeichnen, hat folgende Komponenten:
-
Bacula Director (DIR): Software, die die Sicherungs- und Wiederherstellungsvorgänge steuert, die von den File- und Storage-Daemons ausgeführt werden
-
* Storage Daemon (SD): * Software, die Lese- und Schreibvorgänge auf den für Backups verwendeten Speichergeräten durchführt
-
* Katalog: * Dienste, die eine Datenbank mit gesicherten Dateien verwalten. Die Datenbank wird in einer SQL-Datenbank wie MySQL oder PostgreSQL gespeichert
-
* Bacula Console: * Eine Befehlszeilenschnittstelle, über die der Sicherungsadministrator mit Bacula Director interagieren und ihn steuern kann
Note: The Bacula server components don't need to run on the same server, but they all work together to provide the backup server functionality.
Ein Bacula * Client *, d.h. Auf einem zu sichernden Server wird die Komponente * File Daemon (FD) * ausgeführt. Der File Daemon ist eine Software, die dem Bacula-Server (insbesondere dem Director) den Zugriff auf die zu sichernden Daten ermöglicht. Wir werden diese Server auch als "Backup-Clients" oder "Clients" bezeichnen.
Wie bereits in der Einführung erwähnt, konfigurieren wir den Sicherungsserver so, dass eine Sicherung seines eigenen Dateisystems erstellt wird. Dies bedeutet, dass der Sicherungsserver auch ein Sicherungsclient ist und die File Daemon-Komponente ausführt.
Beginnen wir mit der Installation.
Installieren Sie Bacula und MySQL
Bacula verwendet eine SQL-Datenbank wie MySQL oder PostgreSQL, um den Backup-Katalog zu verwalten. In diesem Tutorial verwenden wir MariaDB, einen Drop-In-Ersatz für MySQL.
Installieren Sie die Bacula- und MariaDB Server-Pakete mit yum:
sudo yum install -y bacula-director bacula-storage bacula-console bacula-client mariadb-server
Nach Abschluss der Installation müssen wir MySQL mit dem folgenden Befehl starten:
sudo systemctl start mariadb
Nachdem MySQL (MariaDB) installiert ist und ausgeführt wird, erstellen wir den Bacula-Datenbankbenutzer und die Tabellen mit den folgenden Skripten:
/usr/libexec/bacula/grant_mysql_privileges
/usr/libexec/bacula/create_mysql_database -u root
/usr/libexec/bacula/make_mysql_tables -u bacula
Als nächstes wollen wir ein einfaches Sicherheitsskript ausführen, das einige gefährliche Standardeinstellungen entfernt und den Zugriff auf unser Datenbanksystem ein wenig sperrt. Starten Sie das interaktive Skript, indem Sie Folgendes ausführen:
sudo mysql_secure_installation
In der Eingabeaufforderung werden Sie nach Ihrem aktuellen Root-Passwort gefragt. Da Sie gerade MySQL installiert haben, werden Sie höchstwahrscheinlich keine haben. Lassen Sie das Feld leer, indem Sie die Eingabetaste drücken. Anschließend werden Sie gefragt, ob Sie ein Root-Passwort festlegen möchten. Fahren Sie fort und drücken Sie die Eingabetaste und geben Sie das Passwort ein. Bei den restlichen Fragen drücken Sie einfach bei jeder Eingabeaufforderung die Eingabetaste, um die Standardwerte zu akzeptieren. Dadurch werden einige Beispielbenutzer und -datenbanken entfernt, Remotestammanmeldungen deaktiviert und diese neuen Regeln geladen, sodass MySQL die von uns vorgenommenen Änderungen sofort berücksichtigt.
Jetzt müssen wir das Passwort für den Bacula-Datenbankbenutzer festlegen.
Geben Sie die MySQL-Konsole als Root-MySQL-Benutzer ein:
mysql -u root -p
Geben Sie an der Eingabeaufforderung das soeben festgelegte MySQL-Root-Passwort ein.
Legen Sie nun das Passwort für den Bacula-Datenbankbenutzer fest. Verwenden Sie diesen Befehl, aber ersetzen Sie das hervorgehobene "baculadbpassword" durch ein sicheres Passwort:
UPDATE mysql.user SET Password=PASSWORD('') WHERE User='bacula';
FLUSH PRIVILEGES;
Wenn Sie hier fertig sind, beenden Sie die MySQL-Eingabeaufforderung:
exit
Aktivieren Sie MariaDB, um beim Booten zu starten. Verwenden Sie dazu den folgenden Befehl:
sudo systemctl enable mariadb
Stellen Sie Bacula so ein, dass MySQL Library verwendet wird
Standardmäßig verwendet Bacula die PostgreSQL-Bibliothek. Da wir MySQL verwenden, müssen wir es so einstellen, dass stattdessen die MySQL-Bibliothek verwendet wird.
Führen Sie diesen Befehl aus:
sudo alternatives --config libbaccats.so
Sie werden die folgende Eingabeaufforderung sehen. Geben Sie 1 (MySQL) ein:
OutputThere are 3 programs which provide 'libbaccats.so'.
Selection Command
-----------------------------------------------
1 /usr/lib64/libbaccats-mysql.so
2 /usr/lib64/libbaccats-sqlite3.so
*+ 3 /usr/lib64/libbaccats-postgresql.so
Enter to keep the current selection[+], or type selection number:
Die Bacula-Server- (und Client-) Komponenten sind jetzt installiert. Erstellen wir die Sicherungs- und Wiederherstellungsverzeichnisse.
Erstellen Sie Sicherungs- und Wiederherstellungsverzeichnisse
Bacula benötigt ein * backup * -Verzeichnis zum Speichern von Backup-Archiven und ein * restore * -Verzeichnis, in dem wiederhergestellte Dateien abgelegt werden. Wenn Ihr System über mehrere Partitionen verfügt, müssen Sie die Verzeichnisse auf einer Partition erstellen, auf der ausreichend Speicherplatz vorhanden ist.
Erstellen wir neue Verzeichnisse für beide Zwecke:
sudo mkdir -p /bacula/backup /bacula/restore
Wir müssen die Dateiberechtigungen ändern, damit nur der Bacula-Prozess (und ein Superuser) auf diese Speicherorte zugreifen können:
sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula
Jetzt können wir den Bacula Director konfigurieren.
Konfigurieren Sie Bacula Director
Bacula verfügt über mehrere Komponenten, die unabhängig voneinander konfiguriert werden müssen, um ordnungsgemäß zu funktionieren. Die Konfigurationsdateien befinden sich alle im Verzeichnis + / etc / bacula +
.
Wir fangen mit dem Bacula-Direktor an.
Öffnen Sie die Bacula Director-Konfigurationsdatei in Ihrem bevorzugten Texteditor. Wir verwenden vi:
sudo vi /etc/bacula/bacula-dir.conf
Director-Ressource konfigurieren
Suchen Sie die Director-Ressource und konfigurieren Sie sie für die Wiedergabe von "+ 127.0.0.1 " (localhost), indem Sie die hier gezeigte Zeile " DirAddress +" hinzufügen:
bacula-dir.conf - Director DirAddress hinzufügen
Director { # define myself
Name = bacula-dir
DIRport = 9101 # where we listen for UA connections
QueryFile = "/etc/bacula/query.sql"
WorkingDirectory = "/var/spool/bacula"
PidDirectory = "/var/run"
Maximum Concurrent Jobs = 1
Password = "@@DIR_PASSWORD@@" # Console password
Messages = Daemon
}
Fahren Sie nun mit dem Rest der Datei fort.
Lokale Jobs konfigurieren
Mit einem Bacula-Job werden Sicherungs- und Wiederherstellungsaktionen ausgeführt. Jobressourcen definieren die Details, wie ein bestimmter Job ausgeführt wird, einschließlich des Clientnamens und des FileSet, das unter anderem gesichert oder wiederhergestellt werden soll.
Hier konfigurieren wir die Jobs, die zum Durchführen von Sicherungen des lokalen Dateisystems verwendet werden.
Suchen Sie in der Director-Konfiguration die Ressource * Job * mit dem Namen “BackupClient1” (suchen Sie nach “BackupClient1”). Ändern Sie den Wert von "+ Name +" in "BackupLocalFiles", so dass es so aussieht:
bacula-dir.conf - BackupClient1-Job umbenennen
Job {
Name = ""
JobDefs = "DefaultJob"
}
Suchen Sie als Nächstes die Ressource * Job * mit dem Namen “RestoreFiles” (suchen Sie nach “RestoreFiles”). In diesem Job möchten Sie zwei Dinge ändern: Aktualisieren Sie den Wert von "+ Name " in "RestoreLocalFiles" und den Wert von " Where +" in "/ bacula / restore". Es sollte so aussehen:
bacula-dir.conf - RestoreFiles Job umbenennen
Job {
Name = ""
Type = Restore
Client=BackupServer-fd
FileSet="Full Set"
Storage = File
Pool = Default
Messages = Standard
Where =
}
Dadurch wird der RestoreLocalFiles-Job so konfiguriert, dass Dateien in + / bacula / restore +
wiederhergestellt werden, dem zuvor erstellten Verzeichnis.
Dateigruppe konfigurieren
Ein Bacula FileSet definiert eine Reihe von Dateien oder Verzeichnissen, die von Jobs verwendet werden, um Dateien von einer Sicherungsauswahl einzuschließen oder auszuschließen.
Suchen Sie die FileSet-Ressource mit dem Namen "Vollständiger Satz" (unter dem Kommentar "# Liste der zu sichernden Dateien"). Hier nehmen wir drei Änderungen vor: (1) Fügen Sie die Option hinzu, gzip zum Komprimieren unserer Backups zu verwenden, (2) ändern Sie die Include-Datei von "+ / usr / sbin " in " / " und (3) fügen Sie "" hinzu Datei = / bacula + `im Abschnitt Ausschließen. Wenn die Kommentare entfernt sind, sollte es so aussehen:
bacula-dir.conf - Update "Full Set" FileSet
FileSet {
Name = "Full Set"
Include {
Options {
signature = MD5
}
File =
}
Exclude {
File = /var/lib/bacula
File = /proc
File = /tmp
File = /.journal
File = /.fsck
}
}
Sehen wir uns die Änderungen an, die wir am Dateisatz "Vollständiger Satz" vorgenommen haben. Zuerst haben wir die gzip-Komprimierung beim Erstellen eines Backup-Archivs aktiviert. Zweitens schließen wir "+ / " ein, d.h. die Root-Partition, die gesichert werden soll. Drittens schließen wir " / bacula +" aus, weil wir unsere Bacula-Backups und wiederhergestellten Dateien nicht redundant sichern möchten.
Note: If you have partitions that are mounted within /, and you want to include those in the FileSet, you will need to include additional File records for each of them.
Denken Sie daran, dass Ihre Sicherungen mehr Speicherplatz benötigen, als wenn Ihre Sicherungsauswahlen spezifischer sind, wenn Sie in Ihren Sicherungsaufträgen immer breite Dateisätze wie "Vollständiger Satz" verwenden. Beispielsweise kann ein FileSet, das nur Ihre angepassten Konfigurationsdateien und Datenbanken enthält, für Ihre Anforderungen ausreichend sein, wenn Sie einen klaren Wiederherstellungsplan haben, in dem die Installation der erforderlichen Softwarepakete und das Platzieren der wiederhergestellten Dateien an den richtigen Speicherorten unter Verwendung von nur einem Bruchteil von angegeben sind Der Speicherplatz für Sicherungsarchive.
Konfigurieren Sie die Storage Daemon-Verbindung
In der Bacula Director-Konfigurationsdatei definiert die Speicherressource den Speicher-Daemon, zu dem der Director eine Verbindung herstellen soll. Wir werden den eigentlichen Storage Daemon gleich konfigurieren.
Suchen Sie die Speicherressource und ersetzen Sie den Wert von Address (+ localhost +) durch den privaten vollqualifizierten Domänennamen (oder die private IP-Adresse) Ihres Sicherungsservers. Es sollte so aussehen (ersetzen Sie das hervorgehobene Wort):
bacula-dir.conf - Speicheradresse aktualisieren
Storage {
Name = File
# Do not use "localhost" here
Address = # N.B. Use a fully qualified name here
SDPort = 9103
Password = "@@SD_PASSWORD@@"
Device = FileStorage
Media Type = File
}
Dies ist erforderlich, da der Storage Daemon so konfiguriert wird, dass er die private Netzwerkschnittstelle überwacht, damit Remoteclients eine Verbindung dazu herstellen können.
Konfigurieren Sie die Katalogverbindung
In der Bacula Director-Konfigurationsdatei definiert die Katalogressource, wo die Datenbank verwendet und mit der der Director eine Verbindung herstellen soll.
Suchen Sie die Katalogressource mit dem Namen "MyCatalog" (unter dem Kommentar "Generischer Katalogservice") und aktualisieren Sie den Wert von "+ dbpassword +" so, dass er mit dem Kennwort übereinstimmt, das Sie für den bacula MySQL-Benutzer festgelegt haben:
bacula-dir.conf - Aktualisiere den Katalog dbpassword
# Generic catalog service
Catalog {
Name = MyCatalog
# Uncomment the following line if you want the dbi driver
# dbdriver = "dbi:postgresql"; dbaddress = 127.0.0.1; dbport =
dbname = "bacula"; dbuser = "bacula"; dbpassword = ""
}
Dadurch kann der Bacula Director eine Verbindung zur MySQL-Datenbank herstellen.
Pool konfigurieren
Eine Pool-Ressource definiert den Speichersatz, der von Bacula zum Schreiben von Sicherungen verwendet wird. Wir werden Dateien als Speichervolumen verwenden und das Etikett einfach aktualisieren, damit unsere lokalen Backups richtig beschriftet werden.
Suchen Sie die Pool-Ressource mit dem Namen "Datei" (unter dem Kommentar "# File Pool definition") und fügen Sie eine Zeile hinzu, die ein Beschriftungsformat angibt. Es sollte so aussehen, wenn Sie fertig sind:
bacula-dir.conf - Update-Pool:
# File Pool definition
Pool {
Name = File
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
Maximum Volume Bytes = 50G # Limit Volume size to something reasonable
Maximum Volumes = 100 # Limit number of Volumes in Pool
}
Speichern und schließen. Sie haben nun die Konfiguration des Bacula Director abgeschlossen.
Überprüfen Sie die Director-Konfiguration:
Vergewissern Sie sich, dass Ihre Director-Konfigurationsdatei keine Syntaxfehler enthält:
sudo bacula-dir -tc /etc/bacula/bacula-dir.conf
Wenn keine Fehlermeldungen vorliegen, enthält Ihre Datei + bacula-dir.conf +
keine Syntaxfehler.
Als Nächstes konfigurieren wir den Storage Daemon.
Konfigurieren Sie den Storage Daemon
Unser Bacula-Server ist fast eingerichtet, aber wir müssen den Storage Daemon noch konfigurieren, damit Bacula weiß, wo Backups gespeichert werden.
Öffnen Sie die SD-Konfiguration in Ihrem bevorzugten Texteditor. Wir verwenden vi:
sudo vi /etc/bacula/bacula-sd.conf
Speicherressource konfigurieren
Suchen Sie die Speicherressource. Dies definiert, wo der SD-Prozess auf Verbindungen wartet. Fügen Sie den Parameter + SDAddress +
hinzu und weisen Sie ihn dem privaten vollqualifizierten Domänennamen (oder der privaten IP-Adresse) Ihres Sicherungsservers zu:
bacula-sd.conf - SDAddress aktualisieren
Storage { # definition of myself
Name = BackupServer-sd
SDPort = 9103 # Director's port
WorkingDirectory = "/var/lib/bacula"
Pid Directory = "/var/run/bacula"
Maximum Concurrent Jobs = 20
}
Konfigurieren Sie das Speichergerät
Suchen Sie als Nächstes die Geräte-Ressource mit dem Namen "FileStorage" (suchen Sie nach "FileStorage") und aktualisieren Sie den Wert von "+ Archive Device +" entsprechend Ihrem Sicherungsverzeichnis:
bacula-sd.conf - Archivierungsgerät aktualisieren
Device {
Name = FileStorage
Media Type = File
Archive Device =
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
Speichern und schließen.
Überprüfen Sie die Storage Daemon-Konfiguration
Vergewissern Sie sich, dass Ihre Storage Daemon-Konfigurationsdatei keine Syntaxfehler enthält:
sudo bacula-sd -tc /etc/bacula/bacula-sd.conf
Wenn keine Fehlermeldungen vorliegen, enthält Ihre Datei + bacula-sd.conf +
keine Syntaxfehler.
Wir haben die Bacula-Konfiguration abgeschlossen. Wir sind bereit, die Bacula-Serverkomponenten neu zu starten.
Legen Sie die Passwörter für Bacula-Komponenten fest
Jede Bacula-Komponente, wie Director, SD und FD, verfügt über Kennwörter, die für die Authentifizierung zwischen Komponenten verwendet werden. Wahrscheinlich haben Sie beim Durchlaufen der Konfigurationsdateien Platzhalter bemerkt. Es ist möglich, diese Kennwörter manuell festzulegen. Da Sie diese Kennwörter jedoch nicht wirklich benötigen, führen Sie Befehle aus, um zufällige Kennwörter zu generieren und in die verschiedenen Bacula-Konfigurationsdateien einzufügen.
Diese Befehle generieren und setzen das Director-Passwort. Die + bconsole +
stellt eine Verbindung zum Director her und benötigt daher auch das Passwort:
DIR_PASSWORD=`date +%s | sha256sum | base64 | head -c 33`
sudo sed -i "s/@@DIR_PASSWORD@@/${DIR_PASSWORD}/" /etc/bacula/bacula-dir.conf
sudo sed -i "s/@@DIR_PASSWORD@@/${DIR_PASSWORD}/" /etc/bacula/bconsole.conf
Diese Befehle generieren und setzen das Storage Daemon-Passwort. Der Director stellt eine Verbindung zum SD her und benötigt daher auch das Kennwort:
SD_PASSWORD=`date +%s | sha256sum | base64 | head -c 33`
sudo sed -i "s/@@SD_PASSWORD@@/${SD_PASSWORD}/" /etc/bacula/bacula-sd.conf
sudo sed -i "s/@@SD_PASSWORD@@/${SD_PASSWORD}/" /etc/bacula/bacula-dir.conf
Diese Befehle generieren und setzen das lokale File Daemon-Passwort (die Bacula-Client-Software). Der Director stellt eine Verbindung zu diesem FD her und benötigt daher auch das Kennwort:
FD_PASSWORD=`date +%s | sha256sum | base64 | head -c 33`
sudo sed -i "s/@@FD_PASSWORD@@/${FD_PASSWORD}/" /etc/bacula/bacula-dir.conf
sudo sed -i "s/@@FD_PASSWORD@@/${FD_PASSWORD}/" /etc/bacula/bacula-fd.conf
Jetzt können wir unsere Bacula-Komponenten starten!
Starten Sie Bacula Components
Starten Sie den Bacula Director, den Storage Daemon und den lokalen File Daemon mit den folgenden Befehlen:
sudo systemctl start bacula-dir
sudo systemctl start bacula-sd
sudo systemctl start bacula-fd
Wenn alle ordnungsgemäß gestartet wurden, führen Sie diese Befehle aus, damit sie beim Booten automatisch gestartet werden:
sudo systemctl enable bacula-dir
sudo systemctl enable bacula-sd
sudo systemctl enable bacula-fd
Testen wir, ob Bacula funktioniert, indem wir einen Sicherungsjob ausführen.
Test Backup Job
Wir werden die Bacula-Konsole verwenden, um unseren ersten Sicherungsjob auszuführen. Wenn es ohne Probleme läuft, wissen wir, dass Bacula richtig konfiguriert ist.
Geben Sie nun die Konsole mit diesem Befehl ein:
sudo bconsole
Dadurch gelangen Sie zur Eingabeaufforderung der Bacula-Konsole, die mit einem "+ * +" gekennzeichnet ist.
Erstellen Sie ein Etikett
Beginnen Sie, indem Sie einen Befehl + label +
eingeben:
label
Sie werden aufgefordert, einen Datenträgernamen einzugeben. Geben Sie einen beliebigen Namen ein:
Enter new Volume name:
Wählen Sie dann den Pool aus, den das Backup verwenden soll. Wir verwenden den zuvor konfigurierten "Datei" -Pool, indem wir "2" eingeben:
Select the Pool (1-3):2
Sicherungsjob manuell ausführen
Bacula weiß jetzt, wie wir die Daten für unser Backup schreiben wollen. Wir können jetzt unser Backup ausführen, um zu testen, ob es richtig funktioniert:
run
Sie werden aufgefordert, den auszuführenden Job auszuwählen. Wir möchten den Job "BackupLocalFiles" ausführen, geben Sie also an der Eingabeaufforderung "1" ein:
Select Job resource (1-3):1
Überprüfen Sie an der Bestätigungsaufforderung "Sicherungsjob ausführen" die Details und geben Sie "Ja" ein, um den Job auszuführen:
yes
Überprüfen Sie Nachrichten und Status
Nach dem Ausführen eines Jobs teilt Bacula Ihnen mit, dass Sie Nachrichten haben. Die Nachrichten werden durch die Ausführung von Jobs generiert.
Überprüfen Sie die Nachrichten, indem Sie Folgendes eingeben:
messages
In der Meldung sollte "Kein vorheriger Datensatz für vollständigen Sicherungsjob gefunden" stehen und der Sicherungsjob wurde gestartet. Wenn Fehler auftreten, stimmt etwas nicht, und sie sollten Ihnen einen Hinweis geben, warum der Job nicht ausgeführt wurde.
Eine andere Möglichkeit, den Status des Jobs anzuzeigen, besteht darin, den Status des Directors zu überprüfen. Geben Sie dazu den folgenden Befehl an der bconsole-Eingabeaufforderung ein:
status director
Wenn alles richtig funktioniert, sollten Sie sehen, dass Ihr Job ausgeführt wird. Etwas wie das:
Output - status director (Running Jobs)Running Jobs:
Console connected at 09-Apr-15 12:16
JobId Level Name Status
======================================================================
3 Full BackupLocalFiles.2015-04-09_12.31.41_06 is
====
Wenn Ihr Auftrag abgeschlossen ist, wird er wie folgt in den Abschnitt "Abgebrochene Aufträge" des Statusberichts verschoben:
Output - status director (Terminated Jobs)Terminated Jobs:
JobId Level Files Bytes Status Finished Name
====================================================================
3 Full 161,124 877.5 M 09-Apr-15 12:34 BackupLocalFiles
Der Status „OK“ zeigt an, dass der Sicherungsjob ohne Probleme ausgeführt wurde. Herzliche Glückwünsche! Sie haben eine Sicherungskopie des vollständigen Satzes Ihres Bacula-Servers.
Der nächste Schritt ist das Testen des Wiederherstellungsjobs.
Wiederherstellungsjob testen
Nachdem ein Backup erstellt wurde, muss überprüft werden, ob es ordnungsgemäß wiederhergestellt werden kann. Mit dem Befehl "+ restore +" können Sie gesicherte Dateien wiederherstellen.
Führen Sie Restore All Job aus
Zur Veranschaulichung stellen wir alle Dateien in unserer letzten Sicherung wieder her:
restore all
Ein Auswahlmenü mit vielen verschiedenen Optionen wird angezeigt, mit denen festgelegt wird, von welchem Sicherungssatz die Wiederherstellung erfolgen soll. Da wir nur eine einzige Sicherung haben, wählen wir "Letzte Sicherung auswählen", Option 5:
Select item (1-13):5
Da es nur einen Client gibt, den Bacula-Server, wird dieser automatisch ausgewählt.
Bei der nächsten Eingabeaufforderung werden Sie gefragt, welches FileSet Sie verwenden möchten. Wählen Sie "Full Set", das sollte 2 sein:
Select FileSet resource (1-2):2
Dadurch gelangen Sie in einen virtuellen Dateibaum mit der gesamten Verzeichnisstruktur, die Sie gesichert haben. Diese Shell-ähnliche Oberfläche ermöglicht es, mit einfachen Befehlen die Markierung von wiederherzustellenden Dateien aufzuheben.
Da wir festgelegt haben, dass alle wiederhergestellt werden sollen, ist jede gesicherte Datei bereits für die Wiederherstellung markiert. Markierte Dateien werden durch ein vorangestelltes "+ * +" gekennzeichnet.
Wenn Sie Ihre Auswahl verfeinern möchten, können Sie mit den Befehlen "ls" und "cd" durch Dateien navigieren und sie auflisten, Dateien zur Wiederherstellung mit "mark" markieren und Dateien mit "unmark" entmarkieren. Eine vollständige Liste der Befehle erhalten Sie, indem Sie "help" in die Konsole eingeben.
Wenn Sie mit der Auswahl der Wiederherstellung fertig sind, geben Sie Folgendes ein:
done
Bestätigen Sie, dass Sie den Wiederherstellungsjob ausführen möchten:
OK to run? (yes/mod/no):yes
Überprüfen Sie Nachrichten und Status
Wie bei Sicherungsjobs sollten Sie nach dem Ausführen eines Wiederherstellungsjobs die Nachrichten und den Director-Status überprüfen.
Überprüfen Sie die Nachrichten, indem Sie Folgendes eingeben:
messages
Es sollte eine Meldung angezeigt werden, die besagt, dass der Wiederherstellungsjob gestartet wurde oder mit dem Status "Restore OK" beendet wurde. Wenn Fehler auftreten, stimmt etwas nicht, und sie sollten Ihnen einen Hinweis geben, warum der Job nicht ausgeführt wurde.
Auch hier können Sie den Status eines Wiederherstellungsjobs anhand des Director-Status überprüfen:
status director
Wenn Sie mit der Wiederherstellung fertig sind, geben Sie "+ exit +" ein, um die Bacula Console zu verlassen:
exit
Überprüfen Sie die Wiederherstellung
Um zu überprüfen, ob der Wiederherstellungsjob die ausgewählten Dateien tatsächlich wiederhergestellt hat, können Sie im Verzeichnis "+ / bacula / restore +" nachsehen (das im Job "RestoreLocalFiles" in der Director-Konfiguration definiert wurde):
sudo ls -la /bacula/restore
Sie sollten wiederhergestellte Kopien der Dateien in Ihrem Root-Dateisystem sehen, mit Ausnahme der Dateien und Verzeichnisse, die im Abschnitt "Ausschließen" des Jobs "RestoreLocalFiles" aufgelistet wurden. Wenn Sie versuchen, Datenverluste zu beheben, können Sie die wiederhergestellten Dateien an die entsprechenden Speicherorte kopieren.
Wiederhergestellte Dateien löschen
Möglicherweise möchten Sie die wiederhergestellten Dateien löschen, um Speicherplatz freizugeben. Verwenden Sie dazu diesen Befehl:
sudo -u root bash -c "rm -rf /bacula/restore/*"
Beachten Sie, dass Sie diesen Befehl als root ausführen müssen, da sich viele der wiederhergestellten Dateien im Besitz von root befinden.
Fazit
Sie haben jetzt ein grundlegendes Bacula-Setup, mit dem Sie Ihr lokales Dateisystem sichern und wiederherstellen können. Im nächsten Schritt fügen Sie Ihre anderen Server als Sicherungsclients hinzu, damit Sie sie bei Datenverlust wiederherstellen können.
Das nächste Tutorial zeigt Ihnen, wie Sie Ihre anderen Remote-Server als Bacula-Clients hinzufügen können: https://www.digitalocean.com/community/tutorials/how-to-back-up-a-centos-7-server-with- bacula [Sichern eines CentOS 7-Servers mit Bacula].