März 6, 2022

So sichern Sie ein Debian-System mit Backupninja

Zuletzt aktualisiert am 19.September 2020 von Gabriel Cánepa

Vorsicht oder Erfahrung im Katastrophenfall können jedem Systemadministrator beibringen, wie wichtig es ist, häufige Systemsicherungen durchzuführen. Sie können dies tun, indem Sie gute alte Shell-Skripte schreiben oder eines (oder mehrere) der vielen für den Job verfügbaren Backup-Tools verwenden (z. B. Clonezilla, Duplicity). Je mehr Tools Sie kennen lernen, desto fundiertere Entscheidungen treffen Sie bei der Implementierung einer Backup-Lösung.

In diesem Artikel stellen wir Backupninja vor, ein leichtes und einfach zu konfigurierendes Systemsicherungstool. Mit Hilfe von Programmen wie rdiff-backup, duplicity, mysqlhotcopy und mysqldump, Backupninja bietet gemeinsame Backup-Funktionen wie Remote, sichere und inkrementelle Dateisystem-Backups, verschlüsselte Backup und MySQL / MariaDB-Datenbank-Backup. Sie können Status-E-Mail-Berichte selektiv aktivieren und allgemeine Hardware- und Systeminformationen sichern. Eine wichtige Stärke von Backupninja ist ein integrierter konsolenbasierter Assistent (ninjahelper), mit dem Sie auf einfache Weise Konfigurationsdateien für verschiedene Sicherungsszenarien erstellen können.

Der Nachteil ist sozusagen, dass für Backupninja andere Hilfsprogramme installiert werden müssen, um alle Funktionen voll ausnutzen zu können. Während das RPM-Paket von Backupninja für Red Hat-basierte Distributionen verfügbar ist, sind die Abhängigkeiten von Backupninja für Debian und seine Derivate optimiert. Daher ist es nicht empfehlenswert, Backupninja für Red Hat-basierte Systeme zu versuchen.

In diesem Tutorial werden wir die Backupninja-Installation für Debian-basierte Distributionen behandeln.

Backupninja installieren

Führen Sie den folgenden Befehl als root aus:

# aptitude install backupninja

Während der Installation werden mehrere Dateien und Verzeichnisse erstellt:

  • /usr/sbin/backupninja ist das Haupt-Bash-Shell-Skript.
  • /etc/cron.d/backupninja, standardmäßig weist cron an, das Hauptskript einmal pro Stunde auszuführen.
  • /etc/logrotate.d/backupninja dreht die vom Programm erstellten Protokolle.
  • /etc/backup.d/ ist das Verzeichnis, in dem sich die Konfigurationsdateien für Sicherungsaktionen befinden.
  • /etc/backupninja.conf ist die Hauptkonfigurationsdatei, die allgemeine Optionen enthält. Es ist gut kommentiert und erklärt jede Option im Detail.
  • /usr/share/backupninja ist das Verzeichnis, in dem sich die von Backupninja verwendeten Skripte befinden (auch bekannt als Handler). Dies sind die Skripte, die für die eigentliche Arbeit verantwortlich sind. In diesem Verzeichnis finden Sie auch .helper Dateien, die zum Konfigurieren und Einrichten von ninjahelper Menüs verwendet werden.
  • /usr/share/doc/backupninja/examples enthält Vorlagen für Aktionskonfigurationsdateien (die Art von Dateien, die über ninjahelper erstellt werden).

Ninjahelper zum ersten Mal ausführen

Wenn wir versuchen, ninjahelper zu starten, können wir feststellen, dass möglicherweise eine interne Abhängigkeit erforderlich ist. Wenn Sie dazu aufgefordert werden, geben Sie yes ein und drücken Sie die Taste ENTER, um dialog (ein Tool, das benutzerfreundliche Dialogfelder aus Shell-Skripten anzeigt) zu installieren.

Wenn Sie nach der Eingabe von yes die Eingabetaste drücken, installiert Backupninja den Dialog und zeigt den folgenden Bildschirm an, sobald dies erledigt ist.

Beispiel 1: Hardware- und Systeminformationen sichern

Nach dem Start von ninjahelpererstellen wir eine neue Sicherungsaktion:

Wenn die erforderlichen Hilfsprogramme nicht installiert sind, werden die folgenden Bildschirme angezeigt. Ignorieren Sie diesen Schritt, wenn diese Pakete bereits auf Ihrem System installiert wurden.

Der nächste Schritt besteht darin, die Elemente auszuwählen, die Teil dieser Sicherung sein sollen. Die ersten vier sind standardmäßig ausgewählt, aber Sie können sie durch Drücken der Leertaste deaktivieren.

Wenn Sie fertig sind, drücken Sie OK, um fortzufahren. Sie können wählen, ob Sie die Standardkonfigurationsdatei für diese Sicherungsaktion (/etc/backup.d/10.sys) verwenden oder eine neue erstellen möchten. Im letzteren Fall wird eine neue Datei mit demselben Inhalt wie die Standarddatei unter demselben Verzeichnis mit dem Namen 11.sys usw. für zukünftige Systemsicherungsaktionen erstellt. Beachten Sie, dass Sie die Konfigurationsdatei bearbeiten können, sobald sie mit Ihrem bevorzugten Texteditor erstellt wurde.

Beispiel 2: Inkrementelle Rsync Pull-Sicherung eines Remote-Verzeichnisses

Wie Sie wahrscheinlich wissen, wird rsync häufig zum Synchronisieren von Dateien und Ordnern über ein Netzwerk verwendet. Im folgenden Beispiel werden wir einen Ansatz diskutieren, um inkrementelle Pull-Backups eines Remote-Verzeichnisses mit Hardlinking durchzuführen, um historische Daten zu speichern und auf unserem lokalen Dateiserver zu speichern. Dieser Ansatz hilft uns, Speicherplatz zu sparen und die Sicherheit auf der Serverseite zu erhöhen.

Schritt 1: Schreiben Sie ein benutzerdefiniertes Skript mit folgendem Inhalt in das Verzeichnis /etc/backup.d und chmod in 600. Beachten Sie, dass dieses Verzeichnis neben einfachen Konfigurationsdateien auch Skripte enthalten kann, die Sie ausführen möchten, wenn Backupninja ausgeführt wird, mit dem Vorteil, dass Variablen verwendet werden, die in der Hauptkonfigurationsdatei vorhanden sind.

# REMOTE USERuser=root# REMOTE HOSThost=dev1# REMOTE DIRECTORYremotedir=/home/gacanepa/# LOCAL DIRECTORYlocaldir=/home/gacanepa/backup.0# LOCAL DIRECTORY WHERE PREVIOUS BACKUP WAS STOREDlocaldirold=/home/gacanepa/backup.1mv $localdir $localdirold# RSYNCrsync -av --delete --recursive --link-dest=$localdirold $host:$remotedir $localdir

In der obigen Konfiguration wird die Option --link-dest von rsync verwendet, um unveränderte Dateien (in allen Attributen) von $localdir-old mit dem Zielverzeichnis ($localdir) zu verknüpfen.

Schritt 2: Bevor Backupninja zum ersten Mal ausgeführt wird, ist das übergeordnete Verzeichnis (in diesem Fall/home/gacanepa) leer. Das erste Mal, dass wir ausführen:

# backupninja -n

Das Verzeichnis backup.0 wird erstellt, und später im Prozess wird sein Name in backup.1 geändert.

Beim zweiten Ausführen von Backupninja wird backup.0 neu erstellt und backup.1 beibehalten.

Schritt 3: Überprüfen Sie, ob der Inhalt von backup.1 harte Links zu den Dateien in backup.0 sind, indem Sie die jeweiligen Inode-Nummern und Verzeichnisgrößen vergleichen.

Fazit

Backupninja ist nicht nur ein klassisches Backup-Tool, sondern auch ein einfach zu konfigurierendes Dienstprogramm. Sie können Ihre eigenen Handler schreiben, um Backupninja gemäß den einzelnen Konfigurationsdateien in /etc/backup.d auszuführen, und Sie können sogar Helfer für ninjahelper schreiben, um sie in die Hauptoberfläche aufzunehmen.

Wenn Sie beispielsweise einen Handler mit dem Namen xmodulo in /usr/share/backupninjaerstellen, wird standardmäßig jede Datei mit der Erweiterung .xmodulo in /etc/backup.d ausgeführt. Wenn Sie Ihren xmodulo -Handler zu ninjahelper hinzufügen möchten, können Sie den entsprechenden Helfer als xmodulo.helper schreiben. Wenn Sie möchten, dass Backupninja ein beliebiges Skript ausführt, fügen Sie es einfach zu /etc/backup.d hinzu, und Sie können loslegen. Weitere Informationen zum Erstellen eines benutzerdefinierten Sicherungsplans finden Sie in diesem Backupninja-Lernprogramm.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.