Hetzner - DokuWiki

Tartarus Backup-Konfiguration

Inhaltsverzeichnis

Installation

Tartarus ist ein Bash-Skript, das zur Installation einfach von der Website heruntergeladen und nach /usr/local/sbin/ kopiert wird:

 wget -O /usr/local/sbin/tartarus.sh http://wertarbyte.de/tartarus/current/tartarus.sh
 chmod +x /usr/local/sbin/tartarus.sh

Das Skript bedient sich einer Vielzahl klassischer Unix-Werkzeuge, die über die Paketverwaltung installiert werden:

 apt-get install tar bzip2 lvm2 gnupg curl

Backup-Konfiguration

Tartarus liest seine Konfiguration aus Profildateien, die im Verzeichnis /etc/tartarus/ abgelegt werden. Es handelt sich um Shell-Skripte, die vom Backup-Prozess ausgewertet werden; daher ist es auch möglich, über das Kommando "source" weitere Konfigurationsdateien in einem Profil einzuschließen. Dies lässt sich nutzen, um generische Einstellungen für alle Backup-Profile zentral abzuspeichern:

Allgemeine Einstellungen

 # /etc/tartarus/generic.inc
 # Generische Einstellungen für die Sicherung
 # auf den Hetzner-FTP-Server
 STORAGE_METHOD="FTP"
 # Adresse des FTP-Server
 STORAGE_FTP_SERVER="1.2.3.4"
 # FTP-Zugangsdaten
 STORAGE_FTP_USER="12345"
 STORAGE_FTP_PASSWORD="SecretPassword"
 # Übertragung verschlüsseln
 STORAGE_FTP_USE_SSL="yes"
 # Zertifikat akzeptieren
 STORAGE_FTP_SSL_INSECURE="yes"
 
 # Kompression
 COMPRESSION_METHOD="bzip2"
 # Größe des LVM-Snapshots
 LVM_SNAPSHOT_SIZE="1000M"
 
 # Backup-Daten symmetrisch verschlüsseln
 ENCRYPT_SYMMETRICALLY="yes"
 # Passwort aus /etc/tartarus/backup.sec lesen
 ENCRYPT_PASSPHRASE_FILE="/etc/tartarus/backup.sec"
 
 # Während der Erstellung der Sicherung nicht über
 # Dateisystemgrenzen hinausgehen
 STAY_IN_FILESYSTEM="yes"

Diese Einstellungen verschlüsseln Sicherungen mit einem Passwort, das aus der Datei /etc/tartarus/backup.sec gelesen wird. Der Inhalt dieser Datei ist erforderlich, um die Archive später wieder entpacken zu können; er sollte daher sicher (evtl. in ausgedruckter Form) verwahrt werden.

Einfache Sicherung

Ein einfaches Profil zur Sicherung des Root-Dateisystems (/) könnte folgendermaßen aussehen:

 # /etc/tartarus/root.conf
 #
 # Allgemeine Einstellungen einlesen
 source /etc/tartarus/generic.inc
 # Name des Sicherungsprofils
 NAME="root"
 # Verzeichnis / sichern
 DIRECTORY="/"
 # Keine temporären Dateien sichern
 EXCLUDE="/tmp/"
 # keinen LVM-Snapshot erstellen
 CREATE_LVM_SNAPSHOT="no"

Die Sicherung lässt sich einfach durch folgenden Aufruf starten:

 /usr/local/sbin/tartarus.sh /etc/tartarus/root.conf

Sicherung mit LVM-Snapshot

LVM-Snapshots erlauben es, das dem Dateisystem zu Grunde liegende LVM-Blockgerät im laufenden Betrieb einzufrieren. Dazu speichert das LVM-System die während des Betriebs anfallenden Änderungen in einem separaten Logical Volume.

 # /etc/tartarus/home.conf
 source /etc/tartarus/generic.inc
 
 NAME="home"
 DIRECTORY="/home"
 # LVM-Snapshot erstellen
 CREATE_LVM_SNAPSHOT="yes"
 # LVM-Volume, auf dem das Dateisystem gespeichert ist
 LVM_VOLUME_NAME="/dev/volumegroup/home"
 # Mountpoint, in dem das Dateisystem eingehängt wird
 LVM_MOUNT_DIR="/home"

Um das Snapshot-Dateisystem einbinden zu können, benutzt Tartarus das Verzeichnis /snap: Die eingefrorenen Dateisysteme werden in den dazugehörigen Unterverzeichnissen eingeklinkt.

Inkrementelle Sicherungen

Inkrementelle Sicherungen archivieren nicht das gesamte Dateisystem, sondern nur die Änderungen seit der letzten vollständigen Sicherung. Tartarus legt Markierungs-Dateien an, um den genauen Zeitpunkt der letzten Sicherung festzuhalten. Um inkrementelle Sicherungen durchzuführen, muss zunächst ein Verzeichnis angelegt werden, das diese Dateien enthält:

 mkdir -p /var/spool/tartarus/timestamps/

Die Konfigurationsprofile erhalten nun folgende Zeile (mit entsprechend angepasstem Dateiname):

 INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/timestamps/home"

Nach jeder erfolgreichen Sicherung aktualisiert das Skript diese Datei. Um eine inkrementelle Sicherung durchzuführen, startet man Tartarus mit dem zusätzlichen Parameter "-i":

 /usr/local/sbin/tartarus.sh -i /etc/tartarus/home.conf

Automatischer Aufruf

Ein typisches System wird über mehrere Backup-Profile im Verzeichnis /etc/tartarus/ verfügen; um sie automatisch aufzurufen, bietet sich folgendes Hilfskript an:

 #!/bin/sh
 # /usr/local/sbin/backup.sh
 # Run all backup profile found in /etc/tartarus/ and pass
 # command line arguments on to tartarus (e.g. -i)
 for profile in /etc/tartarus/*.conf; do
   /usr/local/sbin/tartarus.sh $* "$profile"
 done

Es lässt sich nun mit und ohne Parameter aufrufen, um alle Profile als vollständige oder inkrementelle Sicherung abzuarbeiten:

 /usr/local/sbin/backup.sh # Vollsicherung
 /usr/local/sbin/backup.sh -i # Inkrementelle Sicherung

Wiederherstellung

Da Tartarus auf einfachen Unix-Werkzeugen basiert, lässt sich eine Sicherung sehr einfach aus dem Rettungssystem wiederherstellen. Um die Dateien in einer Sicherung anzuzeigen, genügt folgende Befehlszeile:

 curl ftp://USER:PASS@YOURSERVER/home-20080411-1349.tar.bz2.gpg | gpg --decrypt | tar tpvj

Um das Archiv in das Verzeichnis /mnt/restore zu entpacken, wird die Zeile folgendermaßen modifiziert:

 curl ftp://USER:PASS@YOURSERVER/home-20080411-1349.tar.bz2.gpg | gpg --decrypt | tar -C /mnt/restore xpvj


© 2020. Hetzner Online GmbH. Alle Rechte vorbehalten.